1-14 each方法的使用在控制台中打印的为什么都一样?
each遍历的时候想在控制台中打印出所有的class该怎么做,为什么不论function方法中写什么,都是一样的控制台结果,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1></h1>
<ul>
<li class="item1">item1</li>
<li class="item2">item2</li>
<li class="item3">item3</li>
<li class="item4">item4</li>
<li class="item5">item5</li>
<li class="item6">item6</li>
<li class="item7">item7</li>
<li class="item8">item8</li>
<li class="item9">item9</li>
</ul>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script>
$(function () {
console.log(($('li').each(function(index,element){
return this.className;
})))
});
</script>
</body>
</html>
这个的打印结果不应该是所有的class的集合吗,这个用map函数就可以做到...
又例如
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1></h1>
<ul>
<li class="item1">item1</li>
<li class="item2">item2</li>
<li class="item3">item3</li>
<li class="item4">item4</li>
<li class="item5">item5</li>
<li class="item6">item6</li>
<li class="item7">item7</li>
<li class="item8">item8</li>
<li class="item9">item9</li>
</ul>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script>
$(function () {
console.log($('li').each(function(index,element){
if(this.innerText==="item3"){
return false;
}
}))
});
</script>
</body>
</html>
想让控制台打印出前两个li,在第三个的时候就退出循环,为什么控制台还是会打印完整的li集合,应该怎样做才能用each数组遍历部分呢...
正在回答
1、each和map函数虽然都是循环遍历,但是是有区别的,each返回的是原来的数组,并不会新创建一个数组。而map方法会返回一个新的数组。所以你使用map方法打印出来的就是class的名。
2、可以在each外面,自己定义一个空数组,然后把循环的内容放进数组,如果只是要前两个,判断到item2就可以了,因为它是先循环遍历到item2,然后再判断的,参考测试代码:
<script> $(function() { var arr = []; $('li').each(function(index, element) { arr.push($(this)); $(this).css({ background: 'red' }); if (this.innerText === "item2") { return false; } }) console.log(arr); }); </script>
祝学习愉快~~
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星