2010-03-11 4 views
18

Как я могу получить номер из идентификатора тега div?jquery get number from id

пример:

<div id="button1"></div> 

, как я могу получить 1 и сохранить его в переменной?

ответ

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

большой! вот что мне нужно! спасибо большое спасибо вам, приятель – yosafat

11

Ваши значения «id» не могут быть чисто цифровыми; им нужно начинать с буквы или «_», как идентификатор. (Примечание: это не так в HTML5 документов.) После того, как вы получили номер в вашем «ID» значение, как это, вы бы просто использовать функцию JQuery attr(), чтобы получить идентификатор:

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

Могу я задать вопрос. что означает/[^ \ d]/g? –

+0

Это регулярное выражение. Он соответствует любой цифре с этой частью: «[^ \ d]». «G» в конце сообщает Javascript повторить операцию «replace» для всех нецифровых цифр, которые он находит в строке. – Pointy

+0

Это лучший ответ. Я понятия не имел, что могу использовать parseInt со словами и цифрами. Он отфильтровывает весь текст и просто возвращает номер. Настолько круто, и так легко – mdegges

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

Если вы хотите, вы можете просто взять цифры в конце:

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

Если button является постоянным префиксом, вы можете сделать это:

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

Вы должны привыкнуть использовать разделители в именах ваших атрибутов (например, button-1, button_1). Одно из преимуществ многих заключается в том, что он облегчает извлечение числа или какой-либо другой информации из поля (т. Е. Путем разделения строки на «-»).

0

Это старый вопрос, но я хотел бы добавить идею использования атрибута data- вместо кодирования информации в 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>

Таким образом, вы не» t нужно пройти все соответствия и еще много чего.