2013-07-30 63 views
1

我已經使用html5 + js創建了網頁。我已經創建(thro'HTML DOM)文本節點到一個div組件&添加到網頁中。點擊一個按鈕事件,我需要textnode值alert.here是我的代碼如下。如何獲取div組件onclick中的textnode事件

<script> 
var context = document.getElementById('holder'); 
for(j=0;j<5;j++){ 
var divs = document.createElement('div'); 
var lbl= document.createElement('label'); 
lbl.innerHTML = 'Hi everyone'; 
divs.appendChild(lbl); 
var text = document.createTextNode('welcome to app'); 
var div = document.createElement('div'); 
div.appendChild(text); 
divs.appendChild(div); 
var btn = document.createElement('button'); 
btn.innerHTML ='gone'; 
btn.className = 'btn'; 
btn.id = j; 
btn.onclick = function(){ 
var a = this.parentElement.ChildNode; 
alert(a.length); 
    for(i=0;i<a.length;i++) 
    { 
    alert(a.getElementByTagName('div').TextNode); 
    } 
} 
divs.appendChild(btn); 
context.appendChild(divs); 
} 
</script> 

<body> 
<div id='holder'></div> 
</body> 

回答

2

您必須確定您使用的是正確的條款。 ChildNode無效,childNodes提供的NodeList沒有getElementsByTagName功能。

我提供了相關部分的替代品,該部分具有我認爲您需要的行爲。

var a = this.parentElement.childNodes; 
for(i=0;i<a.length;i++){ 
    if(a[i].nodeName=="DIV"){ 
     alert(a[i].childNodes[0].data); 
    } 
} 

http://jsfiddle.net/tJAde/

+0

感謝您的幫助,現在就開始工作。 – jmj

0

試試這個。將一個id分配給你創建的按鈕,然後給它onclick事件!

var btn = document.createElement('button'); 
    btn.setAttribute("id", "my_id"); 
    document.getElementById("my_id")=onclick = function(){ 
    var a = this.parentElement.ChildNode; 
    for(i=0;i<a.length;i++) 
    { 
    alert(a.getElementByTagName('div').TextNode); 
    } 
    } 
+0

不工作@MESSIAH – jmj

+0

我與 「ID」 爲button.it更新的代碼並沒有爲我工作。 – jmj

+0

顯示你的小提琴? –

相關問題