2009-05-16 11 views

risposta

64

La prima cosa che viene in la mia mente è una regex one-liner:

var pageNum = $("#specificLink").attr("href").match(/page=([0-9]+)/)[1]; 
+0

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

+1

Potremmo anche prendere in considerazione il controllo di '[? &]' All'inizio. – Matchu

+0

Solo curioso, qual è il significato del '[1]' alla fine? – escist

6

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

0

Utilizzare questo jQuery extension da James Padoley

16

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(); 
+0

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 –

+0

Sì, so degli altri argomenti, forse dovrebbe includere quello nella risposta. Ma perché non dovrebbe funzionare con più personaggi? –

+0

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. –

4

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ò ... =)

+0

Consiglio vivamente di non utilizzare alcun esempio con 'eval()' in quanto può introdurre attacchi XSS. –

-1
if ($('a').on('Clicked').text().search('1') == -1) 
{ 
    //Page == 1 
} 
else 
{ 
    //Page != 1 
} 
+1

Questo non risponde affatto alla domanda. Cosa succede se il numero di pagina è 2? –

Problemi correlati