2012-12-20 50 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);