0

I have the following:

<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>

The idea is to get the number after the deviceTree_#

The issue im running into is the number can be various lengths ie ....583 or 3

is this a regex situation or is there something a simpler solution

4

8 回答 8

5
var tempname=$("#deviceTree_3").attr("id").split("_");

alert(tempname[1]);//show 3

参考分裂

于 2013-10-01T06:38:37.027 回答
1

如果格式始终是“deviceTree_”后跟数字,那么您可以使用以下内容:

var id = document.getElementsByClassName('device')[0].id;
var idNum = id.substring(id.indexOf('_')+1,id.length);
console.log(idNum);
于 2013-10-01T06:43:03.400 回答
1

如果你的数值总是落后于_你可以通过

var numberTag = $('#deviceTree_3').attr('id').split('_').pop();
于 2013-10-01T06:45:06.793 回答
0

你可以使用它。

alert(("deviceTree_3000").split("_")[1]);

于 2013-10-01T08:33:34.747 回答
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_',''))
于 2013-10-01T06:51:11.487 回答
0

参考:http ://api.jquery.com/attribute-starts-with-selector/

如果您想获取所有li具有deviceTree_NNNNas 的元素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]);
于 2013-10-01T06:54:18.527 回答
0

只是$("#deviceTree_3").attr("id").split("_")[1]。简单又甜美

于 2013-10-01T06:48:18.903 回答
0

正如其他人指出的那样,您可以使用split_. 你在这里不需要 jQuery。采用具有表单 id 的元素的函数[anything]_[number]可以是:

function numberFromId(domElem) {
  var idParts = domElem.id.split("_");
  return idParts[1] ? idParts[1] : null;
}

我在这个小提琴中包含了这段代码

于 2013-10-01T06:50:19.967 回答