왜 jQuery를 확장해야합니까? jQuery를 확장하고 전역 기능을 갖는 것의 이점은 무엇입니까?
function qs(key) {
key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
var match = location.search.match(new RegExp("[?&]"+key+"=([^&]+)(&|$)"));
return match && decodeURIComponent(match[1].replace(/\+/g, " "));
}
http://jsfiddle.net/gilly3/sgxcL/
다른 방법은 전체 쿼리 문자열을 구문 분석하고 나중에 사용할 수 있도록 개체에 값을 저장하는 것입니다. 이 접근법은 정규 표현식을 요구하지 않고 window.location
객체를 확장 하지만 전역 변수를 쉽게 사용할 수 있습니다.
location.queryString = {};
location.search.substr(1).split("&").forEach(function (pair) {
if (pair === "") return;
var parts = pair.split("=");
location.queryString[parts[0]] = parts[1] &&
decodeURIComponent(parts[1].replace(/\+/g, " "));
});
http://jsfiddle.net/gilly3/YnCeu/
이 버전은 또한 Array.forEach()
IE7 및 IE8에서 기본적으로 사용할 수없는를 사용합니다. MDN의 구현을 사용하여 추가 하거나 jQuery를 $.each()
대신 사용할 수 있습니다 .