jquery получить номер из id

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

пример:

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

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


person john morris    schedule 11.03.2010    source источник


Ответы (6)


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

 var theId = parseInt($('div.whatever').attr('id').replace(/[^\d]/g, ''), 10);
person Pointy    schedule 11.03.2010
comment
могу я задать вам вопрос. что означает /[^\d]/g? - person Sungguk Lim; 12.03.2010
comment
Это регулярное выражение. Он соответствует любой нецифре с этой частью: [^\d]. G в конце говорит Javascript повторить операцию замены для всех нецифр, которые он находит в строке. - person Pointy; 12.03.2010
comment
Это лучший ответ. Я понятия не имел, что могу использовать parseInt со словами и числами. Он отфильтровывает весь текст и просто возвращает число. Так здорово и так легко - person mdegges; 09.01.2016

// 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"
person karim79    schedule 11.03.2010

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

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

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

person John Himmelman    schedule 11.03.2010

Это старый вопрос, но я хотел бы добавить идею использования атрибута data- вместо кодирования информации в идентификаторе:

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>

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

person Heretic Monkey    schedule 27.04.2017

person    schedule
comment
здорово! это то, что мне вообще нужно! большое спасибо тебе приятель - person yosafat; 16.11.2016