1

我有一个看起来像下面的表格(只是一些伪代码)

<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 的单元格。任何建议将不胜感激。

谢谢

4

1 回答 1

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");
});
于 2013-07-22T12:40:38.077 回答