我使用html5 + js创建了网页。我创建了(thro'HTML DOM)文本节点到div组件&将其添加到网页中。点击一个按钮事件,我需要将textnode值作为alert.here是我的代码。
<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>
答案 0 :(得分:2)
您必须确保使用正确的条款。 ChildNode
无效,NodeList
提供的childNodes
没有getElementsByTagName
功能。
我正在提供相关部分的替代品,其中包含我认为您想要的行为。
var a = this.parentElement.childNodes;
for(i=0;i<a.length;i++){
if(a[i].nodeName=="DIV"){
alert(a[i].childNodes[0].data);
}
}
答案 1 :(得分:0)
试试这个。给你创建的按钮分配一个id,然后给它点击事件!!
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);
}
}