//遍历属性,返回名值对 function outputAttributes(element){ var pairs = new Array(), attrName, attrValue, i, len; for(i=0,len=element.attributes.length;i<len;i++){ attrName = element.attributes[i].nodeName; attrValue = element.attributes[i].nodeValue; //针对 <IE7 bug if(element.attributes[i].specified){ pairs.push(attrName+‘=\‘‘+attrValue+‘\‘‘); } } return pairs.join(‘‘); } var script = document.getElementById(‘script‘); alert(outputAttributes(script));
分割文本节点,从文本节点中提取数据:
//分割文本节点是从文本节点中提取数据的一种常用的DOM解析技术 var element = document.creatElement(‘div‘); element.className = ‘message‘; var textNode = document.creatTextNode(‘Hello World!‘); element.appendChild(textNode); document.body.appendChild(element); var newNode = element.firstChild.splitText(5); alert(element.firstChild.nodeValue); //alert(newNode.nodeValue); //alert(element.childNodes.length);
假设我们想给ul标签添加3个列表项,如果逐个的添加列表项,将会导致浏览器反复渲染(呈现)新信息。为了避免这个问题,我们可以使用一个文档片段来保存创建的列表项,
然后再一次性把他们添加到文档中:
var fragment = document.createDocumentFragment(); var ul = document.getElementById(‘myList‘); var li = null; for(var i,i=0;i<3;i++){ li = document.createElement(); li.appendChild(document.createTextNode(‘item‘+(i+1))); fragment.appendChild(li); } ul.appendChild(fragment);