我有以下内容:
<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
这是一个正则表达式的情况还是有一些更简单的解决方案
答案 0 :(得分:5)
var tempname=$("#deviceTree_3").attr("id").split("_");
alert(tempname[1]);//show 3
参考 split
答案 1 :(得分:1)
如果格式始终是“deviceTree_”后跟数字,那么您可以使用以下内容:
var id = document.getElementsByClassName('device')[0].id;
var idNum = id.substring(id.indexOf('_')+1,id.length);
console.log(idNum);
答案 2 :(得分:1)
如果您的数字值始终位于_
之后,则可以通过
var numberTag = $('#deviceTree_3').attr('id').split('_').pop();
答案 3 :(得分:0)
只需$("#deviceTree_3").attr("id").split("_")[1]
。
简单又甜蜜
答案 4 :(得分:0)
正如其他人指出的那样,您可以使用split
获取_
之后的ID部分。你这里不需要jQuery。采用id为[anything]_[number]
形式的元素的函数可以是:
function numberFromId(domElem) {
var idParts = domElem.id.split("_");
return idParts[1] ? idParts[1] : null;
}
我在此fiddle
中包含了此代码答案 5 :(得分:0)
以下正则表达式将从任何id中提取数字部分,无论它是在开头还是结尾或中间:
id = 'fda_335534'
var reg = /(?![0-9])*([0-9]+)/
var match = reg.exec(id)
console.log(match[1])
优点是,它适用于任何id结构。
如果id始终以'deviceTree_'开头,并且在num之后没有任何内容,只需执行:
console.log(id.replace('deviceTree_',''))
答案 6 :(得分:0)
参考: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]);
答案 7 :(得分:0)
你可以使用它。
alert(("deviceTree_3000").split("_")[1])
;