Soy nuevo en JQuery.JQuery ¿Cómo extraer el valor de la etiqueta href?
Si tengo la siguiente etiqueta. Cuál es el mejor método de JQuery para extraer el valor de "página" del href.
<a href="Search/Advanced?page=2">2</a>
Malcolm
Soy nuevo en JQuery.JQuery ¿Cómo extraer el valor de la etiqueta href?
Si tengo la siguiente etiqueta. Cuál es el mejor método de JQuery para extraer el valor de "página" del href.
<a href="Search/Advanced?page=2">2</a>
Malcolm
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];
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
Utilice esta jQuery extension por James Padoley
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();
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 –
Sí, sé sobre los otros argumentos, tal vez debería incluir eso en la respuesta. ¿Pero por qué no funciona con múltiples personajes? –
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. –
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 ... =)
Recomiendo encarecidamente no usar ninguna muestra con 'eval()' ya que puede presentar ataques XSS. –
if ($('a').on('Clicked').text().search('1') == -1)
{
//Page == 1
}
else
{
//Page != 1
}
Esto no responde la pregunta en absoluto. ¿Qué pasa si el número de página es 2? –
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
También podríamos considerar verificar '(? &]' Al inicio también. – Matchu
Simplemente curioso, ¿cuál es el significado de '[1]' al final? – escist