关于1-9的编程练习

关于1-9的编程练习

这是我的JQ代码:

$(function () {


        //此处写代码

        

        var arrs = $('li').map(function(index,domElement){

           return this.text();

        })

        console.log(arrs);

    });

首先遍历每个li,再把每个li的内容取出来。为什么这样写不行呢?text()方法是获取当前元素的文本内容,为什么控制台提示错误呢?要是这样是错误该怎么把它提取出来放入数组呢?

为什么我这样写,在页面输出的是一串英文:

$(function () {


        //此处写代码

        var arr = new Array();

        var arrs = $('li').each(function(index,domElement){

           return $(domElement).text();

        })

        document.write(arrs.get())

    });

我用map输出可以显示item1到item9,但是我把map改成each之后,就不能正常的输出,而且在控制台打印出来世li.item1,为什么map打印出来是item1,each打印出来就多了个li.老师能给我详细的介绍一下map和each的区别吗?最好能举例子,详细一点,谢谢老师

正在回答

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

2回答

可以定义数组,push 到里面,如下:

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

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

  • 晓白菜 提问者 #1
    非常感谢!
    2017-06-15 18:12:40
小于飞飞 2017-06-13 16:29:50

第一个:

 var arrs = $('li').map(function(index,domElement){
           return this.text(); // 改成 $(this).text()
        })

因为:$(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法,比如用 text() 获取文本,用val() 获取值等等。而 this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的当前 DOM 元素。你不能对它调用 jQuery 方法.

第二个:each: 修改如下:

 $('li').each(function () {
      console.log($(domElement).text());
     });

li.item1 表示为 class 为.item1 的 li元素。

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

  • 提问者 晓白菜 #1
    谢谢老师解答,但是关于第二个。我想先返回值给ARRS,然后再外面打印不行吗?
    2017-06-13 19:10:10
  • 小于飞飞 回复 提问者 晓白菜 #2
    已回复,请查看。
    2017-06-14 11:16:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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