JQuery получить номер из ID - PullRequest
19 голосов
/ 11 марта 2010

как я могу получить номер из идентификатора тега div?

пример:

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

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

Ответы [ 6 ]

27 голосов
/ 11 марта 2010
var id = $("div").attr('id').replace(/button/, '');
11 голосов
/ 11 марта 2010

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

 var theId = parseInt($('div.whatever').attr('id').replace(/[^\d]/g, ''), 10);
3 голосов
/ 11 марта 2010
// 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 голос
/ 11 марта 2010

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

1 голос
/ 11 марта 2010

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

var number = parseInt(element.id.match(/^button(\d+)$/)[1], 10);
0 голосов
/ 27 апреля 2017

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

Таким образом, вам не нужно проходить все сопоставления и еще много чего.

...