jQuery length属性:如果有多个匹配的元素,将返回哪个元素的长度?

时间:2015-04-28 09:48:28

标签: jquery size parent children content-length

声明

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

其中$(this).parent().parent().parent()部分为我们提供了一个<tbody>元素,该元素碰巧有多个 tr个子元素。

1 即可。 tr返回的children tbody $(this).parent().parent().parent()tr.lengthtr的长度将由{{1}返回属性?

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

来自documentation of the length property

  

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

我理解为:&#39; jQuery对象&#39; 这里是tbody元素,它是{{1>的$(this).parent().parent().parent()返回的&#39;此jQuery对象中的元素数量是此tdtr的数量。因此,此处.length属性将返回正在考虑的tdtr的数量,对吗?

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

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

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

1 即可。同样,如果不同的div具有不同的长度,将返回length&#39; div

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

1 个答案:

答案 0 :(得分:2)

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

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

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

因此,如果<tbody>有4 <tr> s - 长度将返回4。