我想实现的是类名点击切换效果,具体的功能实现没有问题,只是在一开始的 window.onload 有一些疑惑。HTML代码为:
HTML代码:
<p id="del" class="del">
<dl>
<dt>配送类型:</dt>
<dd class="selected" value=0><a href="#">全部</a></dd>
<dd value=1><a href="#">京东配送</a></dd>
<dd value=2><a href="#">第三方配送</a></dd>
</dl>
</p>
具体代码见 demo
该 demo 是能够正常实现的,在本地实现的时候,js文件是在<body>标签内最后引入的。现在的问题是,如果改变 window.onload 的写法就会报错,不报错代码如下:
JS代码:
window.onload = function(){
del();
};
报错代码如下:(报错为:Uncaught TypeError: Cannot read property 'length' of undefined, 即 dd 为 undefined )
JS代码:
window.onload = del();//即去掉外面包裹的匿名函数
以上情况,都是当将该语句放在脚本文件的开头处。
经测试,如果将上面会报错的代码语句,放置在脚本文件最后的位置,不会报错。
所以想问一下,其中的问题在哪里?
怪我咯2017-04-10 15:18:14
从报的错误来看,是你的函数在获取dom元素之前被调用了,所以获取不到你的dd,所以dd是undefined,所以undefined没有length。
那么,如果你将js代码放在</body>之前,那么久不需要window.onload了。
PHPz2017-04-10 15:18:14
window.onload = funcRef;
这里 funcRef 函数引用。应该 window.onload = del
参考:
window.onload