2009-05-16 10 views

Odpowiedz

64

Pierwszą rzeczą, która przychodzi do mój umysł jest regex jedno-liner:

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

Należy zauważyć, że nie będzie to doskonałe i zwróci fałszywe alarmy na takie rzeczy, jak 'thepage = 123'. O ile nie możemy być pewni, że adres URL zawsze podąża za tą dokładną strukturą, bardziej odpow- iednie może być przeanalizowanie całego zapytania. – Matchu

+1

Możemy również rozważyć odszukanie '[? &]' Na początku. – Matchu

+0

Po prostu ciekawy, jakie jest znaczenie "[1]" na końcu? – escist

6

Przede wszystkim trzeba wyodrębnić ścieżkę z mniej więcej tak:

$("a#myLink").attr("href"); 

Następnie przyjrzeć się tej wtyczki: http://plugins.jquery.com/project/query-object

będzie to pomoże zajmujesz się wszystkimi typami zapytań, które chcesz zrobić.

/Peter F.

16

widzę dwie opcje tutaj

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. 

nie wiem, czy masz zamiar używać go do stronicowania i mieć tekst w etykiecie <a> -tak jak to masz, ale jeśli powinieneś to zrobić, możesz również wykonać

var number = $('a').text(); 
+0

Twoje pierwsze rozwiązanie nie będzie działać, jeśli istnieją inne argumenty na link: Szukaj/zaawansowane = mysearch & page = 2 Inną kwestią jest to, że działa tylko z pojedynczymi stronami znaków. Nie zadziała na stronie 12, na przykład –

+0

Tak, wiem o innych argumentach, może powinienem to uwzględnić w odpowiedzi. Ale dlaczego nie miałby działać z wieloma postaciami? –

+0

Odpowiedź działa dla wielu znaków. Właściwie to właśnie przetestowałem to w Firebug. Pojedynczy argument dla podłańcucha jest początkową lokalizacją podłańcucha, jeśli drugi argument nie zostanie określony, po prostu odczyta koniec łańcucha. Nadia przedstawia dobry punkt dotyczący wielu argumentów. –

4

Oto metoda, która działa poprzez przekształcenie ciągu kwerendy do 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'); 
} 

pójdę z biblioteki jak inni sugerują, chociaż ... =)

+0

Zdecydowanie nie polecam używania żadnej próbki z 'eval()', ponieważ może ona wprowadzić ataki XSS. –

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

To wcale nie odpowiada na pytanie. Co jeśli numer strony to 2? –

Powiązane problemy