Ich habe viele jQuery-Beispiele gesehen, bei denen Größe und Name des Parameters unbekannt sind.
Meine URL wird immer nur eine Zeichenfolge haben:
http://beispiel.com?sent=yes
Ich möchte nur erkennen:
- Existiert
sent
? - Ist es gleich "yes"?
Ich habe viele jQuery-Beispiele gesehen, bei denen Größe und Name des Parameters unbekannt sind.
Meine URL wird immer nur eine Zeichenfolge haben:
http://beispiel.com?sent=yes
Ich möchte nur erkennen:
sent
?Verwendung von URLSearchParams
:
var params = new window.URLSearchParams(window.location.search);
console.log(params.get('name'));
Vorsicht bei der Kompatibilität (meistens ist es in Ordnung, aber bei IE und Edge kann es anders sein, überprüfen Sie diese für eine kompatible Referenz: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)
Vielleicht ist es schon zu spät. Aber diese Methode ist sehr einfach und simpel
$(function(){
$.url.attr('protocol') // --> Protocol: "http"
$.url.attr('path') // --> host: "www.example.com"
$.url.attr('query') // --> path: "/correct/"
$.url.attr('message') // --> query: "done"
$.url.attr('year') // --> query: "1990"
});
</code></pre>
<p><strong>UPDATE</strong><br/>
Benötigt das URL-Plugin: <a href="https://plugins.jquery.com/url/">plugins.jquery.com/url</a><br/>
Dank -Ripounet</p></x-turndown>
Oder Sie können diese praktische kleine Funktion verwenden, denn warum überkomplizierte Lösungen?
function getQueryParam(param, defaultValue = undefined) {
location.search.substr(1)
.split("&")
.some(function(item) { // gibt das erste Vorkommen zurück und stoppt
return item.split("=")[0] == param && (defaultValue = item.split("=")[1], true)
})
return defaultValue
}
was noch besser aussieht, wenn es vereinfacht und in einer Zeile ist:
var queryDict = {};
location.search.substr(1).split("&").forEach(function(item) {queryDict[item.split("=")[0]] = item.split("=")[1]})
Ergebnis:
queryDict\['sent'\] // undefined oder 'Wert'
Sie sollten diese Antwort sehen: Wie kann ich Abfragezeichenfolgenwerte in JavaScript erhalten?
Vorschau
"?a=1&b=2&c=3&d&e&a=5&a=t%20e%20x%20t&e=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dståle%26car%3Dsaab"
> queryDict
a: ["1", "5", "t e x t"]
b: ["2"]
c: ["3"]
d: [undefined]
e: [undefined, "http://w3schools.com/my test.asp?name=ståle&car=saab"]
> queryDict["a"][1] // "5"
> queryDict.a[1] // "5"
Dieser ist einfach und hat bei mir funktioniert
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
return results[1] || 0;
}
wenn deine URL http://www.yoursite.com?city=4 ist
versuche das
console.log($.urlParam('city'));
Vielleicht möchten Sie sich Dentist JS einmal ansehen? (Haftungsausschluss: Ich habe den Code geschrieben)
Code:
document.URL == "http://helloworld.com/quotes?id=1337&author=kelvin&message=hello"
var currentURL = document.URL;
var params = currentURL.extract();
console.log(params.id); // 1337
console.log(params.author) // "kelvin"
console.log(params.message) // "hello"
Mit Dentist JS können Sie im Grunde die extract()-Funktion auf alle Zeichenfolgen anwenden (z. B. document.URL.extract()) und erhalten eine HashMap aller gefundenen Parameter zurück. Es ist auch anpassbar, um mit Trennzeichen und allem anderen umzugehen.
Minimierte Version < 1kb
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.