2009-05-16 17 views

Respuesta

64

La primera cosa que viene a mi mente es una expresión regular de una sola línea:

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

Tenga en cuenta que esto no será perfecto y devolverá falsos positivos en cosas como 'thepage = 123'. A menos que podamos estar seguros de que la URL siempre sigue esta estructura exacta, un análisis completo de la consulta podría ser más apropiado. – Matchu

+1

También podríamos considerar verificar '(? &]' Al inicio también. – Matchu

+0

Simplemente curioso, ¿cuál es el significado de '[1]' al final? – escist

6

En primer lugar es necesario extraer el camino con algo como esto:

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

A continuación, echar un vistazo a este plugin: http://plugins.jquery.com/project/query-object

Ayudará maneja todo tipo de cosas querystring que desea hacer.

/Peter F

0

Utilice esta jQuery extension por James Padoley

16

veo dos opciones aquí

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. 

No sé si vas a utilizarlo para la paginación y el texto en el <a> -la etiqueta como la tiene, pero si usted también puede hacerlo

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

Su primera solución no funcionará si hay otros argumentos en el enlace: Búsqueda/Búsqueda avanzada = mysearch & page = 2 Otra cuestión es que sólo funciona con páginas de un solo personaje. No funcionará con la página 12, por ejemplo –

+0

Sí, sé sobre los otros argumentos, tal vez debería incluir eso en la respuesta. ¿Pero por qué no funciona con múltiples personajes? –

+0

La respuesta funciona para varios caracteres. De hecho, acabo de probar esto en Firebug. El argumento único para la subcadena es la ubicación de inicio de la subcadena, si no se especifica un segundo argumento, simplemente se leerá hasta el final de la cadena. Sin embargo, Nadia plantea un buen punto sobre múltiples argumentos. –

4

Aquí es un método que funciona mediante la transformación de la cadena de consulta en 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'); 
} 

me gustaría ir con una biblioteca como los otros sugieren sin embargo ... =)

+0

Recomiendo encarecidamente no usar ninguna muestra con 'eval()' ya que puede presentar ataques XSS. –

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

Esto no responde la pregunta en absoluto. ¿Qué pasa si el número de página es 2? –

Cuestiones relacionadas