我有一个看起来像下面的表(只是一些伪代码)
<table>
<tr><td>text11</td><td>text12</td><td><div customerid='1'>Customer 1</div></td></tr>
<tr><td>text21</td><td>text22</td><td><div>Customer 2</td></tr>
<tr><td><div customerid='2'>xxxx-yyyyy</div><td>text23</td><td>text33</td></tr>
</table>
我正在遍历表格的每一行。我需要找到具有自定义属性的行中的元素,例如“customerid”,如上例所示。这种搜索的要求很少。
以下是我的尝试,似乎一直都会返回“未定义”。
rows = $(self.find('tbody tr').each(function (rowIndex, element) {
var keyValue = getKeyValue($(element));
}));
function getKeyValue(row){
return row.attr('customerid');
}
.attr方法似乎不起作用。我已经调试验证'row'实际上是正确的表行,HTML也是正确的,并且包含一个带有div的单元格,其中包含我的自定义属性。 任何建议将不胜感激。
由于
答案 0 :(得分:3)
使用属性选择器[customerid]
查找具有此属性的元素,无论它是什么。
例如,当迭代每一行时,你可以这样做:
rows = $(self.find('tbody tr').each(function (rowIndex, element) {
var keyValue = $(this).find("[customerid]").eq(0).attr("customerid");
}));
或者,您可以首先查找具有客户ID的所有元素,然后向后查找它们出现的行:
self.find('tbody tr [customerid]').each(function() {
var keyValue = this.getAttribute("customerid");
var $row = $(this).closest("tr");
});