У меня есть следующее:
<ul style="display: block;">
<li id="deviceTree_3" class="device">
<div class="tree-itemBody ">
<div class="triCheck"</div>
<div class="tree-arrowPlaceholder"></div>
<span class="tree-itemContent">Bath Vanity (na)</span>
</div>
</li>
Идея состоит в том, чтобы получить номер после deviceTree_ #
Проблема, с которой сталкивается, - это число может быть разной длины, т.е.... 583 или 3
это ситуация с регулярным выражением или есть что-то более простое решение
Если формат всегда "deviceTree_", за которым следует номер, вы можете использовать следующее:
var id = document.getElementsByClassName('device')[0].id;
var idNum = id.substring(id.indexOf('_')+1,id.length);
console.log(idNum);
var tempname=$("#deviceTree_3").attr("id").split("_");
alert(tempname[1]);//show 3
ссылка разделена
Если ваше числовое значение всегда стоит за _
вы можете получить его
var numberTag = $('#deviceTree_3').attr('id').split('_').pop();
вы можете использовать его.
alert(("deviceTree_3000").split("_")[1])
;
Следующее регулярное выражение будет извлекать числовую часть из любого идентификатора, независимо от того, будет ли она начинаться или заканчиваться или посередине:
id = 'fda_335534'
var reg = /(?![0-9])*([0-9]+)/
var match = reg.exec(id)
console.log(match[1])
Плюс, он работает для любой структуры id.
Если идентификатор начинается всегда с 'deviceTree_', и там нет ничего после num, просто выполните:
console.log(id.replace('deviceTree_',''))
Ссылка: http://api.jquery.com/attribute-starts-with-selector/
Если вы хотите получить все элементы li
которые имеют deviceTree_NNNN
качестве ID
, используя jQuery
вы можете сделать следующее:
$.each( $("li[id^='deviceTree_']"), function () {
var id_parts = $(this).attr("id").split("_");
console.log( id_parts[1] );
});
Для одного li
:
var id_parts = $("li[id^='deviceTree_']").attr("id").split("_");
console.log(id_parts[1]);
Просто $("#deviceTree_3").attr("id").split("_")[1]
. Простые и сладкие
Как указывали другие, вы можете использовать split
чтобы получить часть идентификатора после _
. Здесь вам не нужен jQuery. Функция, принимающая элемент с id формы [anything]_[number]
может быть:
function numberFromId(domElem) {
var idParts = domElem.id.split("_");
return idParts[1] ? idParts[1] : null;
}
Я включил этот код в эту скрипку
alert(("deviceTree_3000").split("_")[1])