获取具有特定类Javascript的Table行的id

时间:2015-01-26 14:36:58

标签: javascript html

我需要获取已选择类的表中每行的id值。我需要能够在javascript中执行此操作;不是jquery。

<tr id="1" class="selected"></tr>
<tr id="2"></tr>
<tr id="3" class="selected"></tr>
<tr id="4"></tr>

这应该返回一个数组:[1,3]

感谢任何帮助。感谢。

4 个答案:

答案 0 :(得分:4)

这是一个使用PureJS的解决方案。没有Jquery。

使用了getElementsByClassName。

var cont = document.getElementById("container");
var array = cont.getElementsByClassName("selected");

for (var i = 0; i < array.length; i++)alert(array[i].id);
<table id="container">
<tr id="1" class="selected">asdasd</tr>
<tr id="2">asdasdasd</tr>
<tr id="3" class="selected">asdasdasd</tr>
<tr id="4">asdasdasd</tr>
</table>    

答案 1 :(得分:1)

获取元素,转换为数组,提取ID。简单:

var elements = document.getElementsByClassName("selected");
var elements_array = [].slice.call(elements);
var ids = elements_array .map(function(element){ return element.id });

在jQuery中更容易:

var ids = $(".selected").map(function(index, element){return element.id});

答案 2 :(得分:1)

它应该是这样的

var elements = document.getElementsByClassName("selected");
var idArray=[];
for (var i = 0, len = elements.length; i < len; i++) {
    idArray.push(elements[i].attr('id'));
}

答案 3 :(得分:1)

您可以使用querySelectorAll获取所选元素:

var selected = document.querySelectorAll(".selected");

...即使idArray#map而不是数组,您也可以应用selected来获取NodeList

var ids = Array.prototype.map.call(selected, function(element) {
    return element.id;
});

一体化:

var ids = Array.prototype.map.call(document.querySelectorAll(".selected"), function(element) {
    return element.id;
});

所有现代浏览器以及IE8都支持

querySelectorAll

所有现代浏览器都存在

Array.prototype.map,并且可以轻松填充IE8等旧版浏览器。


如果您要做很​​多事情,将map的副本抓取到变量是很方便的:

var map = Array.prototype.map;

// ...later...

var ids = map.call(document.querySelectorAll(".selected"), function(element) {
    return element.id;
});