为什么用each的结果不对 改成map就对了?

为什么用each的结果不对 改成map就对了?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>习题</title>
</head>
<body>

<h1>筛选和遍历jQuery对象</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="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script>
    $(function () {

        //此处写代码
        var arr=$("li").each(function(){
            return $(this).text();
        }).get();
        document.write(arr); 
    });
</script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
小于飞飞 2017-06-26 18:04:59

1. map()方法主要用来遍历操作数组和对象,each()主要用于遍历jquery对象。

2. each返回的是原来的数组,并不会新创建一个数组。而map方法会返回一个新的数组。

使用each 可以如下,创建一个空数组,保存每次遍历的内容,最后在输出:

var obj = [];
        $('li').each(function () {
            obj.push($(this).text());
        });

希望对你有帮助,祝学习愉快,欢迎采纳。

  • 提问者 coollin #1
    var text=$('li').each(function(index,domElement){ return index; }).get(); console.log(text); 老师 那这样写的结果为什么会是:[li.item1, li.item2, li.item3, li.item4, li.item5, li.item6, li.item7, li.item8, li.item9]?
    2017-06-27 09:01:51
  • 小于飞飞 回复 提问者 coollin #2
    你好,使用了get(),结果是一个数组,li.item1表示 遍历的每一项,这个是class 为 item1 的li 元素,以此类推。祝学习愉快。
    2017-06-27 11:10:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师