【问题标题】:What is 'each' in the jQuery $.each looping?jQuery $.each 循环中的“每个”是什么?
【发布时间】:2018-07-19 05:15:16
【问题描述】:

我正在尝试访问表格行中的数据。数据可能在<td> 标记中,或者作为输入中的文本,或者作为输入中的复选框或按钮。

作为演示,我有一张小桌子:-

<table border="1">
  <tr>
    <td dir="ltr" id="test1" class="tLine" nowrap>Column One</td>
    <td><input type="checkbox" name="vehicle" value="Car" checked>Check Box.</td>
    <td>
      <button type="button" class="clicked">Update</button>
    </td>
  </tr>
</table>    

Javascript 是:-

<script>
    $(".clicked").click(function() {
        var $row = $(this).closest("tr");       // Finds the closest row <tr> 
        var $tds = $row.find("td");             // Finds all children <td> elements
        $.each($tds, function() {               // Visits every single <td> element
           console.log($(this).text());        // Prints out the text within the <td>
         });
        console.log($tds[0].tagName); // 'TD'
        console.log($tds[1].tagName); // 'TD'
        $.each($tds, function(index, value) { // Visits every single <td> element
           console.log($tds[index].tagName); // 'TD'
           console.log($(this).tagName);  // Undefined
           console.log($(each).tagName);  // Fails
         });
    });
</script>

第二个循环中的 each 到底是什么,我该如何使用它? 为什么 $(this).tagName 未定义?

获得 TD 元素后,我可以通过查看孩子来检查内容是什么...

我也在研究 javascript/jquery 表选项,如 SlickGred、jsgrid 和 DataTables,但想先了解上面的代码。

【问题讨论】:

    标签: javascript jquery html-table


    【解决方案1】:

    第二个循环中的 each 到底是什么,我该如何使用它?

    如果您指的是集合中的一个元素,它是value,即回调函数中的第二个参数。但是使用$.each,您也可以使用this 执行此操作。

    为什么 $(this).tagName 未定义?

    因为$(this) 实例化了一个jQuery 对象,而jQuery 对象中没有tagName 属性。您可以使用this.tagNamevalue.tagName

    $tds[0].tagName 起作用的原因是,虽然$tds 是一个 jQuery 对象,但它也是一个“类数组”对象,因为包含在其中的所有单个元素都放置在属性/索引中,例如 @987654330 @、'1' 等。所以当你执行$tds[0] 时,你会得到实际的元素并且它具有tagName 属性。

    【讨论】:

      【解决方案2】:

      $(this) 返回一个 jQuery 对象。 thisDOMElement

      【讨论】:

      • 我没有发现这可以解释这种情况,
      猜你喜欢
      • 2014-07-21
      • 2011-06-04
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多