SetAttribute的s小写,测试通过<div id="nn">
<div my:binding="aa"><div my:binding="a"></div></div>
<div my:binding="bb"><div my:binding="b"></div></div>
</div>
<script>
function AddID(firstNode)
{ if (firstNode == null) return;
var binding = firstNode.getAttribute("my:binding");
if (binding != null && firstNode.nodeType == 1) {
firstNode.setAttribute("id", binding);
}
AddID(firstNode.firstChild);
AddID(firstNode.nextSibling);
}
window.onload=function(){
var pNode=document.getElementById("nn");
AddID(pNode.firstChild)
alert(pNode.innerHTML);
}</script>
<div my:binding="aa"><div my:binding="a"></div></div>
<div my:binding="bb"><div my:binding="b"></div></div>
</div>
<script>
function AddID(firstNode)
{ if (firstNode == null) return;
var binding = firstNode.getAttribute("my:binding");
if (binding != null && firstNode.nodeType == 1) {
firstNode.setAttribute("id", binding);
}
AddID(firstNode.firstChild);
AddID(firstNode.nextSibling);
}
window.onload=function(){
var pNode=document.getElementById("nn");
AddID(pNode.firstChild)
alert(pNode.innerHTML);
}</script>
我alert可以得到所有元素节点的nodeName,可是在获取最后一个元素的nodeName后,还返回了好多undefind。不知道哪错了。
对了,代码改了下:
function AddID(firstNode)
{
if (firstNode == null) return; if (firstNode.nodeType == 1) {
var binding = firstNode.getAttribute("my:binding");
alert(firstNode.nodeName);
if (binding != null) firstNode.setAttribute("id", binding);
} AddID(firstNode.firstChild);
AddID(firstNode.nextSibling);
}