【问题标题】:Looping through table rows + grabbing attributes循环遍历表行 + 抓取属性
【发布时间】:2017-04-05 01:38:07
【问题描述】:

我正在尝试遍历表行,传入一个对象,抓取每一行的数据过滤器,并根据我传入的数据(键值对)检查它。我下面的代码没有获取数据过滤器值。我做错了什么?

HTML

<table id="table">
   <tr data-filter="1">
     <td></td>
   </tr>
   <tr data-filter="2">
     <td></td>
   </tr>
   <tr data-filter="3">
     <td></td>
   </tr>
</table>

JS

$('#table > tr').each(function(data) {
  var $this = $(this);
  var filter = $this.attr(data-filter);
  console.log(filter);
}

【问题讨论】:

  • 试试$this.data("filter");而不是$this.attr(data-filter);
  • 或者只是在“数据过滤器”周围加上引号。
  • $this.attr('data-filter');

标签: jquery html-table each rows


【解决方案1】:

需要考虑的一点是,当代码在浏览器中呈现时,浏览器会自动在您的table 中添加tbody 标签,然后这个$('#table &gt; tr') 选择器将失败,因为这将直接选择tr 元素但现在在浏览器中,直接孩子是tbody。如果您知道,那么让我们继续另一个案例:

$('#table > tbody > tr').each(function(data) {
   var $this = $(this);
   var filter = $this.data('filter'); // or var filter = $this.attr('data-filter');
   console.log(filter);
}

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 2023-01-11
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2014-11-26
    相关资源
    最近更新 更多