从id标签中抓取数字

时间:2013-10-01 06:33:42

标签: javascript jquery html

我有以下内容:

<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

这是一个正则表达式的情况还是有一些更简单的解决方案

8 个答案:

答案 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]);