Jquery children.length函数在javascript数组函数中不起作用

pw136qt2  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(140)

我使用children.length来确定一个div是否包含另一个div。
当在JavaScript数组函数中使用时,children.length返回不正确的值。
在下面的例子中,我希望两个值都是“1”。
但是,javascriptmap函数返回“”
为什么这行不通?

let outerdiv = $(".outerdiv");

$("#first").text(outerdiv.first().children("div").length);

$("#second").text(outerdiv.map( o => $(o).children("div").length)[0]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="outerdiv">
  <div class="innerdiv">
  </div>
</div>

outerdiv.first().children("div").length = <span id="first"></span>
<p>
outerdiv.map( o => $(o).children("div").length = <span id="second"></span>
gab6jxml

gab6jxml1#

传递给map回调函数的第一个参数是索引,而不是元素,后者是第二个参数。

let outerdiv = $(".outerdiv");
$("#first").text(outerdiv.first().children("div").length);
$("#second").text(outerdiv.map((i, el) => $(el).children("div").length)[0]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="outerdiv">
  <div class="innerdiv">
  </div>
</div>
<span id="first"></span>
<br/>
<span id="second"></span>

相关问题