Autor Zpráva
Milan1236000
Profil
Ahoj,
v JS nemám problém:
var url = new URLSearchParams(window.location.search);
alert(url.get("id"));

Jak by ale přesně to samé šlo napsat v jQuery? Skončil jsem na tomhle, kde se mi jen vypíše celá URL, ale nedaří se mi z ní dostat právě ten jeden parametr.
var url = $(location).prop("href");
alert(url);
// alert(url.get("id")); // zobrazuje se chyba

Díky. :)
Tomášeek
Profil
Milan1236000:
jQuery na toto nemá žádnou zabudovanou funkci (alespoň myslím), musíš si ji napsat sám. Například takto:

$.urlParam = function(url, name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(url);
    if (results == null) {
        return null;
    }
    return decodeURI(results[1]) || 0;
}

var url = 'http://localhost/test.html?a=true&b=12';

alert($.urlParam(url, 'a')); // true
alert($.urlParam(url, 'b')); // 12
alert($.urlParam(url, 'c')); // null
H13
Profil
Celkem zajímavá, sice starší, ale pořád dobře fungující knihovna pro takové účely:
benalman.com/projects/jquery-bbq-plugin
Kajman
Profil
Milan1236000:
A víte o tom, že jQuery je jen rozšiřující funkce pro javascript a i když načtete jQuery knihovnu, čistý javascript funguje stále?

Pokud přesto budete psát funkci s regulárem, jak naznačil Tomášeek, tak nezapomeňte escapovat string name dávaný do reguláru. Navíc bych hledal i jeho ošetřenou variantu pro použití v url. Možná něco jako

'[\?&](?:' + escapeRegExp(name) + '|' + escapeRegExp(encodeURIComponent(name)) + ')=([^&#]*)'
Milan1236000
Profil
Napsat vlastní funkci by problém nebyl, ale to už bych to raději napsal v tom JS. Jen mě zajímalo, jestli na to knihovna jQuery taky nemá nějaké už vytvořené funkce.

Díky za odpovědi. :)
Tomášeek
Profil
Milan1236000:
Ta funkce existuje. url.get()

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0