【问题标题】:jQuery length property: Which element's length will be returned if there are more than one matched elements?jQuery 长度属性:如果有多个匹配元素,将返回哪个元素的长度?
【发布时间】:2015-04-28 09:48:27
【问题描述】:

在声明中

var length = $(this).parent().parent().parent().children('tr').length;

其中$(this).parent().parent().parent() 部分给了我们一个<tbody> 元素,它恰好有多个 tr 子元素。

1那么$(this).parent().parent().parent() 返回的tbody 中的children 中的哪个tr 是这个特定的tr,其长度将由.length 属性返回?

..................................

来自documentation of the length property

描述: jQuery 对象中的元素个数。

我理解为:这里的 'jQuery 对象'tr 元素,它是 $(this).parent().parent().parent() 返回的 tbody,并且'元素个数'在这个 jQuery 对象中是这个trtds 的个数。所以这里的.length 属性会返回考虑中的trtds 的数量,对吧?

2但在给出的示例中here(我复制下面的代码以供参考),声明

var n = $( "div" ).length;

n 分配divs 中body 的数量。 但它不应该包含div 的/直接子元素的数量吗?

1。同样,如果不同的divs 的长度不同,将返回哪个divlength

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>length demo</title>
  <style>
  body {
    cursor: pointer;
  }
  div {
    width: 50px;
    height: 30px;
    margin: 5px;
    float: left;
    background: green;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
  <span></span>
  <div></div>
<script>
$( document.body )
  .click(function() {
    $( document.body ).append( $( "<div>" ) );
    var n = $( "div" ).length;
    $( "span" ).text( "There are " + n + " divs." +
      "Click to add more.");
  })
  // Trigger the click to start
  .trigger( "click" );
</script>

</body>
</html>

【问题讨论】:

  • length 找到内容长度,它找到对象的大小(数量)。你把它复杂化了。 length 属性返回前面对象中匹配元素列表的 size。这就对了!要计算div 的孩子的长度/大小,需要使用$('div').children().length()
  • @ShaunakD "返回前一个对象中匹配元素列表的大小" - 谢谢你,我想我现在明白了。

标签: jquery size parent children content-length


【解决方案1】:

考虑到 jQuery 对象 length 并不意味着特定对象内的内容长度。

length 返回匹配元素的大小/数量。

$(this).parent().parent().parent().children('tr')  .  length
|_______________________________________________|     |____|
                         |preceding object               |Size of the preceding list

所以,如果 &lt;tbody&gt; 有 4 个 &lt;tr&gt;s - 长度将返回 4。

【讨论】:

    猜你喜欢
    • 2020-01-23
    • 1970-01-01
    • 2020-09-09
    • 2020-12-18
    • 2020-07-10
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多