为什么函数外面dd.length就是0

为什么函数外面dd.length就是0

function deleteSelect(){

var dd=document.getElementById("dd");

console.log(dd);console.log(dd.length);    //此处31

//dd.options.remove(1);

for(i=dd.length;i>=0;i--){

dd.options.remove(0);

}

}

var dd=document.getElementById("dd");

console.log(dd);console.log(dd.length);  //此处0


正在回答

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

2回答

同学你好,onload事件是当页面载入完毕后执行Javascript代码。所以在加载时HTML中class为dd的select长度是为0的。如下所示:

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

在通过onload事件调用ymd()方法进行添加时,方法外的代码已经执行。所以长度为0。而在调用deleteSelect()方法时,已经添加了数据,所以长度不为0。

如果解决您的问题请采纳,祝学习愉快!

guly 2020-04-23 12:05:14

你好,

for(i=dd.length;i>=0;i--){
    dd.options.remove(0);
}

执行后会删除下拉框

var dd=document.getElementById("dd");
console.log(dd);

打印值为空,所以

console.log(dd.length);  //此处长度为零,

如果解决您的问题请采纳,祝学习愉快!

  • 提问者 qq_预言家_1 #1
    我没执行deleteSelect函数,也没有dd.options.remove(0);结果还是0.
    2020-04-23 13:09:18
  • 提问者 qq_预言家_1 #2
    <script type="text/javascript"> dd=document.getElementById("dd"); console.log(dd.length); </script>JS只有这些内容,其他都删除了,结果显示0
    2020-04-23 13:11:17
  • 提问者 qq_预言家_1 #3
    所以我才对可以用dd.length做为循环条件,有疑问。为什么2个地方的结果不一样,一个31,一个0
    2020-04-23 13:13:38
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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