Sono nuovo di JQuery.JQuery Come estrarre il valore dal tag href?
Se ho il tag seguente. Qual è il miglior metodo JQuery per estrarre il valore per "pagina" da href.
<a href="Search/Advanced?page=2">2</a>
Malcolm
Sono nuovo di JQuery.JQuery Come estrarre il valore dal tag href?
Se ho il tag seguente. Qual è il miglior metodo JQuery per estrarre il valore per "pagina" da href.
<a href="Search/Advanced?page=2">2</a>
Malcolm
La prima cosa che viene in la mia mente è una regex one-liner:
var pageNum = $("#specificLink").attr("href").match(/page=([0-9]+)/)[1];
Prima di tutto è necessario estrarre il percorso con qualcosa di simile:
$("a#myLink").attr("href");
allora date un'occhiata a questo plugin: http://plugins.jquery.com/project/query-object
Aiuterà gestisci tutti i tipi di cose querystring che vuoi fare.
/Peter F
Utilizzare questo jQuery extension da James Padoley
Vedo due opzioni qui
var link = $('a').attr('href');
var equalPosition = link.indexOf('='); //Get the position of '='
var number = link.substring(equalPosition + 1); //Split the string and get the number.
Non so se siete gonna utilizzare per il paging e avere il testo nel <a>
-tag come lo hai, ma se proprio dovresti puoi fare anche
var number = $('a').text();
tua prima soluzione non funziona se ci sono altri argomenti nel link:? Ricerca/Ricerca avanzata = MySearch & page = 2 un altro problema è che funziona solo con pagine a carattere singolo. Non funzionerà con la pagina 12 per esempio –
Sì, so degli altri argomenti, forse dovrebbe includere quello nella risposta. Ma perché non dovrebbe funzionare con più personaggi? –
La risposta funziona per più caratteri. In effetti ho appena provato questo in Firebug. Il singolo argomento della sottostringa è la posizione iniziale della sottostringa, se non viene specificato un secondo argomento, verrà letto alla fine della stringa. Tuttavia, Nadia richiama un argomento positivo su argomenti multipli. –
Ecco un metodo che funziona trasformando la querystring in JSON ...
var link = $('a').attr('href');
if (link.indexOf("?") != -1) {
var query = link.split("?")[1];
eval("query = {" + query.replace(/&/ig, "\",").replace(/=/ig, ":\"") + "\"};");
if (query.page)
alert(unescape(query.page));
else
alert('No page parameter');
} else {
alert('No querystring');
}
mi piacerebbe andare con una libreria come gli altri suggeriscono però ... =)
Consiglio vivamente di non utilizzare alcun esempio con 'eval()' in quanto può introdurre attacchi XSS. –
if ($('a').on('Clicked').text().search('1') == -1)
{
//Page == 1
}
else
{
//Page != 1
}
Questo non risponde affatto alla domanda. Cosa succede se il numero di pagina è 2? –
Nota che questo non sarà perfetto e restituirà i falsi positivi su cose come 'thepage = 123'. A meno che non possiamo essere sicuri che l'URL segua sempre questa struttura esatta, un'analisi completa della query potrebbe essere più appropriata. – Matchu
Potremmo anche prendere in considerazione il controllo di '[? &]' All'inizio. – Matchu
Solo curioso, qual è il significato del '[1]' alla fine? – escist