jQuery - 在表行中查找具有自定义属性的元素

标签 jquery

我有一个类似于下面的表格(只是一些伪代码)

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

相关文章:

javascript - jQuery:将具有一个类的 td 元素添加到 tr

javascript - Typeahead.js 不显示下拉菜单

javascript - 模态打开时触发延迟加载功能

javascript - Flot:绘制滚动 1 小时图表

javascript - 传递 $(this) 作为参数?

jQueryUI - switchClass - 如何删除恰好应用的任何类,而不是需要规定需要删除的类?

javascript - 如何使用 JavaScript 在屏幕上移动两个不同的图像

jquery - 使用 css 基于 li 类显示 block 到 ul

JQuery 和 Phonegap 恢复事件

javascript - JSON 格式的 Ajax 源数据 - 无法获取未定义或空引用的属性 'length'