2012-12-20 48 views
1

我想在同一个标​​记内获取标记的id,然后将其作为参数发送给javascript(如果可能)。 这样的事情是我现在已经尝试:在html5中的相同标记内获取标识<a>

var entity = document.createElement("a"); 
entity.setAttribute("id", name); 
entity.setAttribute("href", "javascript:playAudio('"+path+"', this.id)"); 

我希望它是动态的,所以,如果ID发生变化的JavaScript调用与新的ID来完成。

回答

2

使用的EventListener在这种情况下更合适的事件处理程序:

var entity = document.createElement("a"); 
entity.setAttribute("id", name); 
entity.addEventListener("click", function(e){ 
    playAudio(path, this.id); 
    e.preventDefault(); 
}); 
0

将javascript粘贴在onclick上。 this在href中是指窗口不是主播。

var entity = document.createElement("a"); 
entity.setAttribute("id", name); 
entity.setAttribute("onclick", "playAudio('"+path+"', this.id)"); 
+0

谢谢你,伟大工程! 高兴得到更好的代码,但我有点好奇,为什么它不工作在href? – spydon

+1

@LukasKlingsbo - 这是因为'href'中的'this'指的是'window'。 –

2

你应该安装,而不是注入的JavaScript到href属性

entity.setAttribute('href', '#'); 
entity.addEventListener('click', function() { 
    playAudio(path, this.id); 
    return false; 
}, false);