我有一个类似于下面的表格(只是一些伪代码)
<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”,如上例所示。此搜索的要求很少。
- 单元格未固定显示此自定义属性的位置
- 此自定义属性出现的 HTML 元素类型并不固定。这意味着像 $('div') 等任何选择器都是不可能的。
- 搜索将在单行级别而不是表级别执行
这是我正在尝试的,似乎总是返回“未定义”。
rows = $(self.find('tbody tr').each(function (rowIndex, element) {
var keyValue = getKeyValue($(element));
}));
function getKeyValue(row){
return row.attr('customerid');
}
.attr 方法似乎不起作用。我已经进行了调试,以验证“行”实际上是正确的表行,并且 HTML 也是正确的,并且包含一个带有 div 的单元格,上面有我的自定义属性。 任何建议将不胜感激。
谢谢
最佳答案
使用属性选择器[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");
});
关于jQuery - 在表行中查找具有自定义属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787801/