2-8练习效果

2-8练习效果

   var inputs=document.getElementsByTagName("input");

   var entry=inputs[0];

   entry.onclick=entryFn;

function entryFn(){

   var names[];

 for(var i=0;i<names.length;i++){

     var name,names[i]=name;

     while(name!="-1"){

         name=prompt("请输入员工姓名");

         document.write("录入的第"+(i+1)+"个员工信息是:"+names[i]+"<br/>");

     }

 }

}

老师帮看看,为什么这实现不了点击事件?

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

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

3回答
怎么都被占用了呢 2017-11-28 15:40:57

那个数组长度为0,可以这么理解。不过那个-1,你看哦,是这样的,在循环内先通过输入框向name赋值,插入数组,然后判断时候等于-1,要不要结束循环。上边这个代码,第一次弹框赋值是在循环内进行的,所以是先插入的数组,后进行的判断,所以如果有-1的输入时,要删除掉

怎么都被占用了呢 2017-11-28 13:45:01

对于这个题,需要循环弹框的话,使用while循环语句最为合适。

其次你的2个问题:names[names.length]这是给names数组进行赋值操作,第一次输入的值应该存放在数组的第一个单元,下标为0的位置,而names.length正好是0,赋值完成后,names.length就变为1了。第二次输入的值就会存放在下标为1的位置。这样能理解吗

在while循环过程中,是先向数组插入输入的值,然后判断是否为-1,要不要结束循环,你将第3步的代码注释掉,就可以发现,-1存入了数组之中。最后,无法触发事件,你要确保脚本结构写的完整,我帮你截得图,都是计算过程中的重要部分,没有放完整哦

  • 提问者 慕设计7452494 #1
    第一次输入了数值,在存放进数组前,数组是空的, names.length就是0,可以这样理解吗?输入值为-1时,循环终止,不是不向数组中存放了吗,怎么还删除这个-1?
    2017-11-28 14:55:29
怎么都被占用了呢 2017-11-28 10:59:13

你写的这个代码逻辑有些乱,我帮你提一些建议吧,其实完成这个题,我们只需要4步就可以了,第一步:定义一个空数组和变量,用来接受所有的姓名输入和每次的姓名输入,第二步,循环弹框,并将每次的值都存入数组中,当输入的值为-1时,停止循环。第3步:将数组的长度减去1,是为了将最后输入的-1,删除。最后遍历数组,将数组中的所有的姓名分行输出。

http://img1.sycdn.imooc.com//climg/5a1cd0fe0001277610590350.jpg

  • 提问者 慕设计7452494 #1
    这里用if语句也可以吧
    2017-11-28 11:13:05
  • 提问者 慕设计7452494 #2
    有两个问题,一,names[names.length]这个应该是当前数组对象的后一个对象 ,即name作为对象传进数组的应该是names[names.length-1]=name 二,根据while语法,最后输入的-1不会存进数组啊。我照着上面代码操作,也是无法触发事件,不知道为什么?
    2017-11-28 11:40:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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