一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

DOM節(jié)點(diǎn)信息、DOM屬性、3大節(jié)點(diǎn)、替換節(jié)點(diǎn)、查找設(shè)置屬性節(jié)點(diǎn)、創(chuàng)建刪除插入節(jié)點(diǎn)、innerHTML屬性、顯示彈出窗口

 quasiceo 2014-06-17

DOM節(jié)點(diǎn)信息、DOM屬性、3大節(jié)點(diǎn)、替換節(jié)點(diǎn)、查找設(shè)置屬性節(jié)點(diǎn)、創(chuàng)建刪除插入節(jié)點(diǎn)、innerHTML屬性、顯示彈出窗口

www.MyException.Cn   發(fā)布于:2013-03-21 10:08:17   瀏覽:35次
1
DOM節(jié)點(diǎn)信息、DOM屬性、三大節(jié)點(diǎn)、替換節(jié)點(diǎn)、查找設(shè)置屬性節(jié)點(diǎn)、創(chuàng)建刪除插入節(jié)點(diǎn)、innerHTML屬性、顯示彈出窗口

DOM節(jié)點(diǎn)信息、DOM屬性、三大節(jié)點(diǎn)、替換節(jié)點(diǎn)、查找設(shè)置屬性節(jié)點(diǎn)、創(chuàng)建刪除插入節(jié)點(diǎn)、innerHTML屬性、顯示彈出窗口

DOM節(jié)點(diǎn)信息

每個節(jié)點(diǎn)都擁有包含著關(guān)于節(jié)點(diǎn)某些信息的屬性。這些屬性是:

nodeName(節(jié)點(diǎn)名稱) 

nodeValue(節(jié)點(diǎn)值) 

nodeType(節(jié)點(diǎn)類型)

DOM屬性---nodeName

nodeName 屬性含有某個節(jié)點(diǎn)的名稱。

var name = node.nodeName;

元素節(jié)點(diǎn)的 nodeName 是標(biāo)簽名稱 

屬性節(jié)點(diǎn)的 nodeName 是屬性名稱 

文本節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #text 

文檔節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #document 

注釋:nodeName 所包含的 html 元素的標(biāo)簽名稱永遠(yuǎn)是大寫的

DOM 屬性 -- nodeValue

nodeValue:返回給定節(jié)點(diǎn)的當(dāng)前值(字符串)

 如果給定節(jié)點(diǎn)是一個屬性節(jié)點(diǎn),返回值是這個屬性的值。

 如果給定節(jié)點(diǎn)是一個文本節(jié)點(diǎn),返回值是這個文本節(jié)點(diǎn)的內(nèi)容。

 如果給定節(jié)點(diǎn)是一個元素節(jié)點(diǎn),返回值是 null

 nodeValue 是一個 讀/寫 屬性,但不能對元素節(jié)點(diǎn)的 nodeValue 屬性設(shè)置值,

    但可以為文本節(jié)點(diǎn)的 nodeValue 屬性設(shè)置一個值。

   var li = document.getElementById(li);

   if(li.firstChild.nodeType == 3)

      li.firstChild.nodeValue = “國慶60年”;

DOM 屬性 -- nodeType

nodeType:返回一個整數(shù),這個數(shù)值代表著給定節(jié)點(diǎn)的類型。

nodeType 屬性返回的整數(shù)值對應(yīng)著 12 種節(jié)點(diǎn)類型,常用的有三種:

Node.ELEMENT_NODE    ---1    -- 元素節(jié)點(diǎn)

Node.ATTRIBUTE_NODE  ---2    -- 屬性節(jié)點(diǎn)

Node.TEXT_NODE       ---3    -- 文本節(jié)點(diǎn)

nodeType 是個只讀屬性

三大節(jié)點(diǎn)--元素節(jié)點(diǎn)

//測試元素節(jié)點(diǎn),輸出節(jié)點(diǎn)名稱,節(jié)點(diǎn)的類型,節(jié)點(diǎn)的值

  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é)點(diǎn)--屬性節(jié)點(diǎn)

//測試屬性節(jié)點(diǎn),輸出屬性節(jié)點(diǎn)名稱,節(jié)點(diǎn)的類型,節(jié)點(diǎn)的值

  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"));

  }

三大節(jié)點(diǎn)--文本節(jié)點(diǎn)

//測試元素節(jié)點(diǎn),輸出節(jié)點(diǎn)名稱,節(jié)點(diǎn)的類型,節(jié)點(diǎn)的值

  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é)點(diǎn)

replaceChild()

把一個給定父元素里的一個子節(jié)點(diǎn)替換為另外一個子節(jié)點(diǎn)

var reference = element.replaceChild(newChild,oldChild);

返回值是一個指向已被替換的那個子節(jié)點(diǎn)的引用指針。

如果被插入的子節(jié)點(diǎn)還有子節(jié)點(diǎn),則那些子節(jié)點(diǎn)也被插入到目標(biāo)節(jié)點(diǎn)中

替換節(jié)點(diǎn)例子

//  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é)點(diǎn)

getAttribute()   

返回一個給定元素的一個給定屬性節(jié)點(diǎn)的值

var attributeValue = element.getAttribute(attributeName);

給定屬性的名字必須以字符串的形式傳遞給該方法。

給定屬性的值將以字符串的形式返回,如果給定屬性不存在,getAttribute() 將返回一個空字符串.

通過屬性獲取屬性節(jié)點(diǎn)

   getAttributeNode(屬性的名稱)--Node

<li name="beijing" id="bj">北京</li> 

    

   //通過屬性名獲取屬性的值

     var  bjElement=document.getElementById("bj");

     var attributeValue=eduElement.getAttribute("name");

     alert("attributeValue    "+attributeValue);

        

   //通過屬性名獲取屬性的節(jié)點(diǎn)

   var  bjNode=eduElement.getAttributeNode("name");

       alert(eduNode.nodeValue);

       alert(eduNode.nodeType);

       alert(eduNode.nodeName);

設(shè)置屬性節(jié)點(diǎn)

setAttribute()

將給定元素節(jié)點(diǎn)添加一個新的屬性值或改變它的現(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é)點(diǎn)

createElement()

按照給定的標(biāo)簽名創(chuàng)建一個新的元素節(jié)點(diǎn)。方法只有一個參數(shù):將被創(chuàng)建的元素的名字,是一個字符串.

  var reference = document.createElement(element);

方法的返回值:是一個指向新建節(jié)點(diǎn)的引用指針。返回值是一個元素節(jié)點(diǎn),所以它的 nodeType 屬性值等于 1

新元素節(jié)點(diǎn)不會自動添加到文檔里,新節(jié)點(diǎn)沒有 nodeParent 屬性,它只是一個存在于 JavaScript 上下文的對象.

var pElement = document.createElement("p");

設(shè)置屬性節(jié)點(diǎn)

 //創(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é)點(diǎn)

createTextNode()

創(chuàng)建一個包含著給定文本的新文本節(jié)點(diǎn)。這個方法的返回值是一個指向新建文本節(jié)點(diǎn)引用指針。

  var textNode = document.createTextNode(text);

方法只有一個參數(shù):新建文本節(jié)點(diǎn)所包含的文本字符串

方法的返回值:是一個指向新建節(jié)點(diǎn)的引用指針。它是一個文本節(jié)點(diǎn),所以它的 nodeType 屬性等于 3.

新元素節(jié)點(diǎn)不會自動添加到文檔里,新節(jié)點(diǎn)沒有 nodeParent 屬性

   

      var pElementText=document.createElement("li");

  var textElement=document.createTextNode("南京");

  pElementText.appendChild(textElement);

插入節(jié)點(diǎn)(1

appendChild()

為給定元素增加一個子節(jié)點(diǎn):                                   

   var newreference = element.appendChild(newChild).              

   給定子節(jié)點(diǎn) newChild 將成為給定元素節(jié)點(diǎn) element 的最后一個子節(jié)點(diǎn)。

方法的返回值是一個指向新增子節(jié)點(diǎn)的引用指針。

該方法通常與 createElement() createTextNode() 配合使用

新節(jié)點(diǎn)可以被追加給文檔中的任何一個元素

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é)點(diǎn)(2

insertBefore()

把一個給定節(jié)點(diǎn)插入到一個給定元素節(jié)點(diǎn)的給定子節(jié)點(diǎn)的前面

  var reference =  element.insertBefore(newNode,targetNode);

  節(jié)點(diǎn) newNode 將被插入到元素節(jié)點(diǎn) element 中并出現(xiàn)在節(jié)點(diǎn) targetNode 的前面.

節(jié)點(diǎn) targetNode 必須是 element 元素的一個子節(jié)點(diǎn)。

該方法通常與 createElement() 和 createTextNode() 配合使用

<ul id="city">     <li value="beijing^" id="beijing">北京</li>        </ul>

  <ul id="city01">   <li value="shanghai^" id="shanghai">上海</li>          </ul>

 //獲取父節(jié)點(diǎn)

 var parentCityNode=document.getElementById("city");

 //獲取子節(jié)點(diǎn)

 var beijingNode=document.getElementById("beijing");

 var shanghaiNode=document.getElementById("shanghai");

 //插入

 parentCityNode.insertBefore(shanghaiNode,beijingNode);

<ul id="city">

        <li value="beijing^" id="beijing">北京</li>

 </ul>

 //獲取父節(jié)點(diǎn)

 var parentCityNode=document.getElementById("city");

 //獲取子節(jié)點(diǎn)

 var beijingNode=document.getElementById("beijing");

 //創(chuàng)建節(jié)點(diǎn)newShanghaiNode

 var newShanghaiNode=document.createElement("li"); 

 //創(chuàng)建newShanghaiNode節(jié)點(diǎn)的文本節(jié)點(diǎn)

 var newTextNode=document.createTextNode("上海");

//在創(chuàng)建的節(jié)點(diǎn)上增加文本

 newShanghaiNode.appendChild(newTextNode);

 //插入節(jié)點(diǎn)

 parentCityNode.insertBefore(newShanghaiNode,beijingNode);

插入節(jié)點(diǎn)(3)

DOM 沒有提供 insertAfter() 方法

function insertAfter(newElement,targetElement){

   //獲取目標(biāo)元素的父節(jié)點(diǎn)

var parentElement=targetElement.parentNode;

   //如果目標(biāo)元素是最后一個元素,則新元素插入到目標(biāo)元素的后面

if(parentElement.lastChild==targetElement){

    parentElement.appendChild(newElement);

}else{//如果目標(biāo)元素不是最后一個元素,則新元素插入到目標(biāo)元素的的

   //下一個兄弟節(jié)點(diǎn)的前面,即目標(biāo)元素的后面

   parentElement.insertBefore(newElement,targetElement.nextSibling);

}

 }

刪除節(jié)點(diǎn)

removeChild()

從一個給定元素里刪除一個子節(jié)點(diǎn)

   var reference = element.removeChild(node);

返回值是一個指向已被刪除的子節(jié)點(diǎn)的引用指針。

某個節(jié)點(diǎn)被removeChild()方法刪除時,這個節(jié)點(diǎn)所包含的所有子節(jié)點(diǎn)將同時被刪除。

 <ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>

 var ulElement=document.getElementById("city");

 var liElement=document.getElementById("beijing");

 ulElement.removeChild(liElement);

如果想刪除某個節(jié)點(diǎn),但不知道它的父節(jié)點(diǎn)是哪一個,parentNode 屬性可以幫忙。

<ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>

   var liElement=document.getElementById("beijing");

   var parentElement=liElement.parentNode;

   parentElement.removeChild(liElement);

遍歷節(jié)點(diǎn)樹

ChildNodes:返回一個數(shù)組,這個數(shù)組由給定元素節(jié)點(diǎn)的子節(jié)點(diǎn)構(gòu)成:

var nodeList = node.childNodes;

文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)都不可能再包含任何子節(jié)點(diǎn),所以它們的 ChildNodes 屬性永遠(yuǎn)會返回一個空數(shù)組。

如果想知道某個元素有沒有子節(jié)點(diǎn),可以用 hasChildNodes 方法。

如果想知道某個元素有多少個子節(jié)點(diǎn),可以用 childNodes 數(shù)組的 length 屬性。

childNodes 屬性是一個只讀屬性。

獲取第一個子節(jié)點(diǎn)

firstChild:該屬性返回一個給定元素節(jié)點(diǎn)的第一個子節(jié)點(diǎn),返回這個節(jié)點(diǎn)對象的指針。

    var reference = node.firstChild;

文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)都不可能包含任何子節(jié)點(diǎn),所以它們的 firstChild 屬性永遠(yuǎn)會返回 null。

某個元素的 firstChild 屬性等價于這個元素的 childNodes 節(jié)點(diǎn)集合中的第一個節(jié)點(diǎn),即:

  var reference = node.ChildNodes[0];

firstChild 屬性是一個只讀屬性。

獲取最后一個子節(jié)點(diǎn)

lastChild:對應(yīng) firstChild 的一個屬性。

nextSibling: 返回一個給定節(jié)點(diǎn)的下一個兄弟節(jié)點(diǎn)。

parentNode:返回一個給定節(jié)點(diǎn)的父節(jié)點(diǎn)。

parentNode 屬性返回的節(jié)點(diǎn)永遠(yuǎn)是一個元素節(jié)點(diǎn),因?yàn)橹挥性毓?jié)點(diǎn)才有可能包含子節(jié)點(diǎn)。

document 節(jié)點(diǎn)的沒有父節(jié)點(diǎn)。

previousSibling:返回一個給定節(jié)點(diǎn)的上一個兄弟節(jié)點(diǎn)

innerHTML屬性

瀏覽器幾乎都支持該屬性,但不是 DOM 標(biāo)準(zhǔn)的組成部分。

innerHTML 屬性可以用來讀,寫某給定元素里的 HTML 內(nèi)容。

<div id="city"></div>

  var divElement=document.getElementById("city");

  divElement.innerHTML="<li value='beijing^'' id='beijing'>北京</li>";

顯示彈出窗口(方案一)

語法:

vReturnValue = window . showModalDialog ( sURL,

                                                    vArguments , sFeatures )

參數(shù)說明: 

sURL--必選參數(shù),用來指定對話框要顯示的文檔的URL。 

vArguments--可選參數(shù),用來向?qū)υ捒騻鬟f參數(shù)。傳遞的參數(shù)類型不限,包括數(shù)組等。對話框通過window.dialogArguments來取得傳遞進(jìn)來的參數(shù)。 

sFeatures--可選參數(shù),用來描述對話框的外觀等信息,可以使用一個或幾個,用分號“;”隔開。

顯示彈出窗口(方案二)

window.opener 的用法

     window.opener 返回的是創(chuàng)建當(dāng)前窗口的那個窗口的引用,比如點(diǎn)擊了a.htm上的一個鏈接而打開了b.htm,然后我們打算在b.htm上輸入一個值然后賦予a.htm上的一個id為“name”的text中,就可以寫為: 
    window.opener.document.getElementById("name").value = "輸入的數(shù)據(jù)";

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩一区二区三区在线欧洲| 一本色道久久综合狠狠躁| 国产高清在线不卡一区| 国产一区麻豆水好多高潮| 九九九热在线免费视频| 久久综合狠狠综合久久综合| 欧美色婷婷综合狠狠爱| 亚洲一区二区三区在线中文字幕 | 久久国产精品热爱视频| 91日韩在线观看你懂的| 91人人妻人人爽人人狠狠| 欧美大黄片在线免费观看| 不卡中文字幕在线免费看| 国产又粗又猛又爽又黄的文字| 国产又粗又猛又爽又黄的文字| 高潮少妇高潮久久精品99| 午夜资源在线观看免费高清| 欧美日韩一区二区综合| 日韩一区二区三区四区乱码视频| 亚洲乱妇熟女爽的高潮片| 加勒比人妻精品一区二区| 国产高清一区二区白浆| 激情亚洲一区国产精品久久| 老司机精品视频在线免费| 国产免费观看一区二区| 精品少妇一区二区视频| 国产成人精品国产亚洲欧洲| 国产又粗又深又猛又爽又黄| 在线观看国产成人av天堂野外| 国产精品香蕉免费手机视频| 久久综合狠狠综合久久综合| 午夜福利精品视频视频| 国产自拍欧美日韩在线观看| 欧美日韩精品一区免费| 国产在线视频好看不卡| 久久99精品国产麻豆婷婷洗澡| 五月天婷亚洲天婷综合网| 日韩人妻一区中文字幕| 初尝人妻少妇中文字幕在线| 蜜桃传媒在线正在播放| 国产原创中文av在线播放|