我正在尝试在JSFiddle中测试一些内容但是我遇到了上述错误。
这是HTML:
<a onclick="populate();return false;" class="populate" href="?hello">Hello</a>
<a onclick="populate();return false;" class="populate" href="?hello">One More</a>
<a onclick="populate();return false;" class="populate" href="?hello">Another One</a>
<a onclick="populate();return false;" class="populate" href="?hello">Another Other One</a>
使用Javascript:
function populate(){
var populate = document.getElementsByClassName('populate');
for(var i=0; i < populate.length; i++)
{
var item = populate[i];
item.addEventListener('click', function() {
var current = this.getAttribute('href');
alert(current);
}, false);
}
return false;
}
任何帮助或建议都将不胜感激!
答案 0 :(得分:1)
您只是按JavaScripts的顺序出现问题:如果您使用内联JavaScript事件处理程序,请确保之前已定义所有使用的函数!
在您的情况下,函数populate()
在onload
事件中定义,因此在解析内联JavaScript时,浏览器不知道它。只需将JavaScript的执行交换为“No wrap-in&lt; head&gt;”你会没事的。
编辑(来自我的评论)
警报仅在第二次单击后才起作用,因为相应的点击处理程序在populate()
函数内分配,该函数仅在单击后执行。
您可以更改分配,例如new fiddle。
答案 1 :(得分:0)
您需要在左侧面板的第二个下拉列表中选择No Wrap in Body
演示:Fiddle