在javascript中關(guān)于節(jié)點內(nèi)容加強
一、元素節(jié)點
//測試元素節(jié)點,輸出節(jié)點名稱,節(jié)點的類型,節(jié)點的值
var liElements=document.getElementsByTagName("li");
for(var i=0;i<liElements.length;i++){
alert(liElements[i].nodeName);
alert(liElements[i].nodeType);
alert(liElements[i].nodeValue);
}
二、屬性節(jié)點
[/c//測試屬性節(jié)點,輸出屬性節(jié)點名稱,節(jié)點的類型,節(jié)點的值
var liElements=document.getElementsByTagName("li");
for(var i=0;i<liElements.length;i++){
var attrElement=liElements[i].getAttributeNode("value")
alert("attrElement.nodeName "+attrElement.nodeName);
alert("attrElement.nodeType "+attrElement.nodeType);
alert("attrElement.nodeValue "+liElements[i].getAttribute("value"));
}ode]
三、文本節(jié)點
[code]
//測試元素節(jié)點,輸出節(jié)點名稱,節(jié)點的類型,節(jié)點的值
var liElements=document.getElementsByTagName("li");
for(var i=0;i<liElements.length;i++){
alert(liElements[i].childNodes[0].nodeName);
alert(liElements[i].childNodes[0].nodeType);
alert(liElements[i].childNodes[0].nodeValue);
liElements[i].childNodes[0].nodeValue="南京";
alert(liElements[i].childNodes[0].nodeValue);
//另一種讀取方法
alert(liElements[i].firstChild.nodeName);
alert(liElements[i].firstChild.nodeType);
alert(liElements[i].firstChild.nodeValue);
}
四、替換節(jié)點
replaceChild()
把一個給定父元素里的一個子節(jié)點替換為另外一個子節(jié)點
var reference = element.replaceChild(newChild,oldChild);
返回值是一個指向已被替換的那個子節(jié)點的引用指針。
如果被插入的子節(jié)點還有子節(jié)點,則那些子節(jié)點也被插入到目標節(jié)點中
//方法一
// var cityElement=document.getElementById("city");
// var loveElement=document.getElementById("love");
// var cityChildElement=document.getElementById("beijing");
// var loveChildElement=document.getElementById("fankong");
// var oldElement=cityElement.replaceChild(loveChildElement,cityChildElement);
// loveElement.appendChild(oldElement);
// alert(oldElement.getAttribute("id"));
var cityElement=document.getElementById("city");
cityElement.onclick=function(){
var cityChildElement=document.getElementById("beijing");
var loveChildElement=document.getElementById("fankong");
var oldElement=cityElement.replaceChild(loveChildElement,cityChildElement);
loveElement.appendChild(oldElement);
alert(oldElement.getAttribute("id"));
}
五、查找屬性節(jié)點
getAttribute()
返回一個給定元素的一個給定屬性節(jié)點的值
var attributeValue = element.getAttribute(attributeName);
給定屬性的名字必須以字符串的形式傳遞給該方法。
給定屬性的值將以字符串的形式返回,如果給定屬性不存在,getAttribute() 將返回一個空字符串.
通過屬性獲取屬性節(jié)點
getAttributeNode(屬性的名稱)--Node
<li name="beijing" id="bj">北京</li>
//通過屬性名獲取屬性的值
var bjElement=document.getElementById("bj");
var attributeValue=eduElement.getAttribute("name");
alert("attributeValue "+attributeValue);
//通過屬性名獲取屬性的節(jié)點
var bjNode=eduElement.getAttributeNode("name");
alert(eduNode.nodeValue);
alert(eduNode.nodeType);
alert(eduNode.nodeName);
六、設(shè)置屬性節(jié)點
setAttribute()
將給定元素節(jié)點添加一個新的屬性值或改變它的現(xiàn)有屬性的值。
element.setAttribute(attributeName,attributeValue);
屬性的名字和值必須以字符串的形式傳遞給此方法
如果這個屬性已經(jīng)存在,它的值將被刷新;
如果不存在,setAttribute()方法將先創(chuàng)建它再為其賦值。
<li id="bj" >北京</li>
//獲取元素的引用
var bjElement=document.getElementById("bj");
//設(shè)置屬性值
bjElement.setAttribute("name","beijing");
//獲取設(shè)置的屬性值
var nameValue=bjElement.getAttribute("name");
alert("nameValue "+nameValue);
七、創(chuàng)建新元素節(jié)點
createElement()
按照給定的標簽名創(chuàng)建一個新的元素節(jié)點。方法只有一個參數(shù):將被創(chuàng)建的元素的名字,是一個字符串.
var reference = document.createElement(element);
方法的返回值:是一個指向新建節(jié)點的引用指針。返回值是一個元素節(jié)點,所以它的 nodeType 屬性值等于 1。
新元素節(jié)點不會自動添加到文檔里,新節(jié)點沒有 nodeParent 屬性,它只是一個存在于 JavaScript 上下文的對象.
var pElement = document.createElement("p");
//創(chuàng)建一個新的元素
var pElement=document.createElement("li");
//設(shè)置屬性值
pElement.setAttribute("id","pid");
//獲取父元素
var loveElement=document.getElementById("love");
//在父元素中增加子元素
loveElement.appendChild(pElement);
//通過id獲取剛創(chuàng)建的元素
var pidElement=document.getElementById("pid");
alert(pidElement.getAttribute("id"));
八、創(chuàng)建新文本節(jié)點
createTextNode()
創(chuàng)建一個包含著給定文本的新文本節(jié)點。這個方法的返回值是一個指向新建文本節(jié)點引用指針。
var textNode = document.createTextNode(text);
方法只有一個參數(shù):新建文本節(jié)點所包含的文本字符串
方法的返回值:是一個指向新建節(jié)點的引用指針。它是一個文本節(jié)點,所以它的 nodeType 屬性等于 3.
新元素節(jié)點不會自動添加到文檔里,新節(jié)點沒有 nodeParent 屬性
var pElementText=document.createElement("li");
var textElement=document.createTextNode("南京");
pElementText.appendChild(textElement);
九、插入節(jié)點(1)
appendChild()
為給定元素增加一個子節(jié)點:
var newreference = element.appendChild(newChild).
給定子節(jié)點 newChild 將成為給定元素節(jié)點 element 的最后一個子節(jié)點。
方法的返回值是一個指向新增子節(jié)點的引用指針。
該方法通常與 createElement() createTextNode() 配合使用
新節(jié)點可以被追加給文檔中的任何一個元素
var newliElement=document.createElement("li");
var textNode=document.createTextNode("北京");
newliElement.appendChild(textNode);
document.body.appendChild(newliElement);
var liElement=document.getElementsByTagName("li");
var textValue=liElement[0].firstChild.nodeValue;
alert(textValue);
十、刪除節(jié)點
removeChild()
從一個給定元素里刪除一個子節(jié)點
var reference = element.removeChild(node);
返回值是一個指向已被刪除的子節(jié)點的引用指針。
某個節(jié)點被removeChild()方法刪除時,這個節(jié)點所包含的所有子節(jié)點將同時被刪除。
<ul id="city"> <li value="beijing^" id="beijing">北京</li> </ul>
var ulElement=document.getElementById("city");
var liElement=document.getElementById("beijing");
ulElement.removeChild(liElement);
如果想刪除某個節(jié)點,但不知道它的父節(jié)點是哪一個,parentNode 屬性可以幫忙。
<ul id="city"> <li value="beijing^" id="beijing">北京</li> </ul>
var liElement=document.getElementById("beijing");
var parentElement=liElement.parentNode;
parentElement.removeChild(liElement);
十一、遍歷節(jié)點樹
ChildNodes:返回一個數(shù)組,這個數(shù)組由給定元素節(jié)點的子節(jié)點構(gòu)成:
var nodeList = node.childNodes;
文本節(jié)點和屬性節(jié)點都不可能再包含任何子節(jié)點,所以它們的 ChildNodes 屬性永遠會返回一個空數(shù)組。
如果想知道某個元素有沒有子節(jié)點,可以用 hasChildNodes 方法。
如果想知道某個元素有多少個子節(jié)點,可以用 childNodes 數(shù)組的 length 屬性。
childNodes 屬性是一個只讀屬性。
十二、獲取第一個子節(jié)點
firstChild:該屬性返回一個給定元素節(jié)點的第一個子節(jié)點,返回這個節(jié)點對象的指針。
var reference = node.firstChild;
文本節(jié)點和屬性節(jié)點都不可能包含任何子節(jié)點,所以它們的 firstChild 屬性永遠會返回 null。
某個元素的 firstChild 屬性等價于這個元素的 childNodes 節(jié)點集合中的第一個節(jié)點,即:
var reference = node.ChildNodes[0];
firstChild 屬性是一個只讀屬性。
十三、獲取最后一個子節(jié)點
lastChild:對應(yīng) firstChild 的一個屬性。
nextSibling: 返回一個給定節(jié)點的下一個兄弟節(jié)點。
parentNode:返回一個給定節(jié)點的父節(jié)點。
parentNode 屬性返回的節(jié)點永遠是一個元素節(jié)點,因為只有元素節(jié)點才有可能包含子節(jié)點。
document 節(jié)點的沒有父節(jié)點。
previousSibling:返回一個給定節(jié)點的上一個兄弟節(jié)點
十四、innerHTML屬性
瀏覽器幾乎都支持該屬性,但不是 DOM 標準的組成部分。
innerHTML 屬性可以用來讀,寫某給定元素里的 HTML 內(nèi)容。
<div id="city"></div>
var divElement=document.getElementById("city");
divElement.innerHTML="<li value='beijing^'' id='beijing'>北京</li>";
相關(guān)文章
js數(shù)組直接賦值的問題(js數(shù)組的淺拷貝與深拷貝方法)
JS數(shù)組在直接賦值時屬于數(shù)組的淺拷貝,新數(shù)組保存的是原數(shù)據(jù)的內(nèi)存地址,修改新數(shù)組或原數(shù)組其中一個數(shù)組,另一個數(shù)組也會相應(yīng)的變化,數(shù)組的直接賦值屬于數(shù)組的淺拷貝,JS存儲對象都是存內(nèi)存地址2022-10-10javaScript中"=="和"==="的區(qū)別詳解
對于JavaScript中比較運算符,可能大家用的比較多的是“==”、對于“===”很多人可能很陌生。=== 表示恒等,首先比較兩邊的變量數(shù)據(jù)類型是否相等,其次比較兩邊的變量的數(shù)值是否相等;== 表示相等即僅僅比較兩邊變量的數(shù)值是否相等。2018-03-03JavaScript基礎(chǔ)心法 數(shù)據(jù)類型
一個很基礎(chǔ)的知識點,這篇主要是介紹JavaScript中基本數(shù)據(jù)類型和引用數(shù)據(jù)類型是如何存儲的,需要的朋友可以參考下2018-03-03Javascript中的getUTCHours()方法使用詳解
這篇文章主要介紹了Javascript中的getUTCHours()方法使用詳解,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-06-06