반응형
jQuery를 사용하여 매개 변수가있는 URL 구성
예를 들어 전역 변수에 저장된 다음 URL이 있습니다.
var myUrl = "http://mydomain.com/something?row=1";
그런 다음 함수는 " column " 이라는 또 다른 매개 변수를 추가해야합니다 . 이 함수는 jQuery를 사용하여 기존 URL 문자열에 매개 변수를 어떻게 추가합니까?
예상되는 생성 된 문자열의 예 :
"http://mydomain.com/something?row=1&column=9"
문제는 다음과 myUrl
같을 수도 있다는 것입니다.
var myUrl = "http://mydomain.com/something";
(기존 매개 변수가 없습니다.)
트릭을 수행 해야하는 jQuery 함수 .param ()을 확인하십시오.
http://api.jquery.com/jQuery.param/
그런 다음 .param ()에 의해 생성 된 문자열을 URL에 추가하는 함수를 만들 수 있습니다.
var myUrl = "http://mydomain.com/something";
function addQSParm(name, value) {
var re = new RegExp("([?&]" + name + "=)[^&]+", "");
function add(sep) {
myUrl += sep + name + "=" + encodeURIComponent(value);
}
function change() {
myUrl = myUrl.replace(re, "$1" + encodeURIComponent(value));
}
if (myUrl.indexOf("?") === -1) {
add("?");
} else {
if (re.test(myUrl)) {
change();
} else {
add("&");
}
}
}
console.log(myUrl);
addQSParm("foo", "asdf");
console.log(myUrl);
addQSParm("bar", "qwerty");
console.log(myUrl);
addQSParm("foo", "123");
console.log(myUrl);
jQuery가 필요하지 않으며 다음과 같은 함수를 사용하십시오.
var buildUrl = function(base, key, value) {
var sep = (base.indexOf('?') > -1) ? '&' : '?';
return base + sep + key + '=' + value;
}
다음과 같이 사용합니다.
buildUrl('http://www.example.com/foo', 'test', '123');
buildUrl('http://www.example.com/foo?bar=baz', 'test', '123');
실제로 문자열이 필요할 때까지 모든 것을 객체에 보관하십시오.
먼저 일부 초기 값에서 개체를 채 웁니다.
var $_GET = location.search.substr(1).split("&").reduce( function( obj, val ){
if( !val ) return obj;
var pair = val.split("=");
obj[pair[0]] = pair[1];
return obj;
}, {} );
Considering initial url of: "http://mydomain.com/something?row=1&column=9"
$_GET['column'] = 5;
$.param( $_GET ); //"row=1&column=5"
You can try this.
myUrl += ((myUrl.indexOf('?') == -1) ? '?' : '&');
myUrl += "column=9";
if (myUrl.indexOf("?") != -1){
// contains query string
}
else
{
// doesn't
}
ReferenceURL : https://stackoverflow.com/questions/8902390/constructing-a-url-with-parameters-using-jquery
반응형
'programing' 카테고리의 다른 글
이미 이동 한 파일을 제외한 모든 파일이 하위 디렉토리에 있도록 기록을 다시 작성하려면 어떻게해야합니까? (0) | 2021.01.14 |
---|---|
왜 어떤 사람들은 이동 할당에 스왑을 사용합니까? (0) | 2021.01.14 |
데이터베이스 'master'에서 CREATE DATABASE 권한이 거부되었습니다 (EF 코드 우선). (0) | 2021.01.14 |
NVM 및 Node.js-모든 사용자에게 권장되는 설치 (0) | 2021.01.14 |
Android 스마트 앱 배너 만들기 (0) | 2021.01.14 |