2010-03-11 13 views

Respuesta

26
var id = $("div").attr('id').replace(/button/, ''); 
+0

genial! ¡eso es lo que necesito por completo! muchas gracias, gracias amigo – yosafat

11

Sus valores "id" no pueden ser puramente numéricos; necesitan comenzar con una letra o "_" como un identificador. (Nota: eso no es cierto en los documentos HTML 5.) Una vez que tenga un número en su valor "id" de esa manera, usted sólo tiene que utilizar la función de jQuery attr() obtener el ID:

var theId = parseInt($('div.whatever').attr('id').replace(/[^\d]/g, ''), 10); 
+0

puedo hacerte una pregunta. ¿Qué significa/[^ \ d]/g? –

+0

Es una expresión regular. Coincide con cualquier no dígito con esta parte: "[^ \ d]". La "g" al final le dice a Javascript que repita la operación "reemplazar" para todos los no dígitos que encuentre en la cadena. – Pointy

+0

Esta es la mejor respuesta. No tenía idea de que podría usar el parseo con palabras y números. Filtra todo el texto y simplemente devuelve el número. Tan genial, y tan fácil – mdegges

2
// replace all non-digits with nothing 
alert($('div').attr("id").replace(/\D/g,'')); 

si se quiere, que sólo puede tomar los números al final:

// <div id="_34_foo_555"></div> 
alert($('div').attr("id").match(/\d+$/)); 
// alerts "555" 
1

Si button es un prefijo constante, se puede hacer esto:

var number = parseInt(element.id.match(/^button(\d+)$/)[1], 10); 
1

Debe tener el hábito de usar delimitadores en los nombres de sus atributos (es decir, botón-1, botón_1). Una de las ventajas, de muchas, es que hace que sea más fácil extraer un número, o alguna otra información, del campo (es decir, dividiendo la cadena en '-').

0

Ésta es una vieja pregunta, pero me gustaría añadir la idea de utilizar un atributo data- en lugar de codificar la información en un id:

window.onload = function() { 
 
    var element = document.getElementById('button1'); 
 
    var number = parseInt(element.getAttribute('data-index'), 10); 
 
    console.log(number); 
 
}
<button id="button1" data-index="1"></button>

De esta manera usted don' Necesito revisar todas las coincidencias y otras cosas.

Cuestiones relacionadas