亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳談javascript中DOM的基本屬性

2019-11-20 13:06:30
字體:
來源:轉載
供稿:網友

結構和內容屬性

nodeType

所有的節點都有類型,節點總共有以下的12種類型。

復制代碼 代碼如下:

interface Node {
// NodeType
const unsigned short      ELEMENT_NODE       = 1;
const unsigned short      ATTRIBUTE_NODE     = 2;
const unsigned short      TEXT_NODE          = 3;
const unsigned short      CDATA_SECTION_NODE = 4;
const unsigned short      ENTITY_REFERENCE_NODE = 5;
const unsigned short      ENTITY_NODE        = 6;
const unsigned short      PROCESSING_INSTRUCTION_NODE = 7;
const unsigned short      COMMENT_NODE       = 8;
const unsigned short      DOCUMENT_NODE      = 9;
const unsigned short      DOCUMENT_TYPE_NODE = 10;
const unsigned short      DOCUMENT_FRAGMENT_NODE = 11;
const unsigned short      NOTATION_NODE      = 12;
...
}

其中最重要的兩個節點為元素節點(1)和文本節點(3)。其余的很少會用到。
例如,列出所有的子元素節點時,我們可以遍歷它,并使用childNodes[i].nodeType != 1來進行檢測。
下面是實現代碼:

復制代碼 代碼如下:

<body>
<div>Allowed readers:</div>
<ul>
 <li>John</li>
 <li>Bob</li>
</ul>
<!-- a comment node -->
<script>  
  var childNodes = document.body.childNodes
  for(var i=0; i<childNodes.length; i++) {
if (childNodes[i].nodeType != 1) continue
    alert(childNodes[i])
  }
</script>
</body>

*思考
下面這段代碼將提示什么內容:

復制代碼 代碼如下:

<!DOCTYPE HTML>
<html> 
<body> 
<script>
   alert(document.body.lastChild.nodeType)
</script>
</body> 
</html>

nodeName, tagName

nodeName 和 tagName 都包含節點的名稱。
對于document.body來說

alert( document.body.nodeName )   // BODY
在HTML中所有的nodeName會被大寫。

當nodeName沒有被大寫時
這種情況比較稀有,你如果好奇的話可以閱讀以下。
你很可能已經知道,瀏覽器有兩種方式進行解析:HTML模式和__XML模式。通常使用的是HTML模式,但是當使用XMLHttpRequest__技術獲取XML文檔時,會使用XML模式。
在火狐瀏覽器中當XHTML文檔的Content-Type設置為xmlish時也會使用XML模式。
在__XML模式中節點名將會保留,所以有可能出現body或bOdY。
因此,如果通過XMLHttpRequest__技術從服務器載入XML到HTML文檔時,節點名稱將會保留。

對于元素來說nodeName和__tagName__是相同的。
但非元素節點也存在著nodeName屬性,在這些節點中它有特殊的值:

alert(document.nodeName) // #document
大多數節點類型都沒有tagName屬性,并且在IE中注釋節點的tagName為!。
因此,通常來講nodeName 跟 tagName 比起來更有意義一些。但tagName像是簡化版本,因此,當你只處理元素節點時,你可以使用它。

innerHTML

innerHTML是HTML5標準的一部分,詳細請看鏈接
它允許以文本的方式訪問節點內容。下例將會輸出document.body的所有的內容并且用新的內容進行替換。

復制代碼 代碼如下:

<body>
  <p>The paragraph</p>
  <div>And a div</div>
  <script>
    alert( document.body.innerHTML ) // read current contents
    document.body.innerHTML = 'Yaaahooo!' // replace contents
  </script>
</body>

innerHTML會包含一個有效地HTML。但瀏覽器也可以解析畸形的HTML。
innerHTML可以在任意一個元素節點中進行使用。它非常非常有用。

innerHTML pitFalls

innerHTML不像看起來那么簡單。它有一些陷阱在正等待著菜鳥們,甚至有些時候經驗豐富的程序員也無法避免。

IE中__table__節點的innerHTML為只讀的
IE中COL, COLGROUP, FRAMESET, HEAD, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR等元素里innerHTML為只讀的。
IE中的table標簽中除了TD其余的標簽innerHTML都是只讀的。

innerHTML不能追加
從語句的構成上來看innerHTML可以進行追加操作,比如:

chatDiv.innerHTML += "<div>Hi <img src='smile.gif'/> !</div>"
chatDiv.innerHTML += "How you doing?"
但是實際上都做了些什么:

1. 舊的內容被清空

2. 新的內容被解析,并插入了進去。內容沒有被追加,它重新生成了。

    因此,所有的圖片和其他的資源當進行+=操作后會重新載入,包括smile.gif。

    幸運的是,有其他的方式來更新內容,這種方式不使用innerHTML,因此沒有上面提到的問題。

nodeValue

innerHTML只對元素節點有效。
對于其他類型的節點來說,他們使用nodeValue屬性來獲取內容。下例將說明它是如何在文本節點和注釋節點工作的。

復制代碼 代碼如下:

<body>
The text
<!-- A comment -->
<script>
 for(var i=0; i<document.body.childNodes.length; i++) {
   alert(document.body.childNodes[i].nodeValue)
 }
</script>
</body>

上面的例子中,有些警告為空的,那是因為空白節點的緣故。注意到對于SCRIPT節點中nodeValue === null。那是因為SCRIPT為元素節點。元素節點,要使用innerHTML。

總結

nodeType
  節點類型。最重要的是元素節點為1,文本節點為3,只讀。
nodeName/tagName
  大寫的標簽名。非元素節點來說nodeName還會有特殊的值,只讀。
innerHTML
  元素節點的內容,可寫。
nodeValue
  文本節點的內容,可寫。
DOM節點根據類型,還有其他的一些屬性。例如,INPUT標簽有value和__checked__屬性。A屬性有href等等。

以上就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色av中文字幕一区| 亚洲午夜色婷婷在线| 国产精品福利在线观看网址| 欧美专区福利在线| 日本久久久a级免费| 日韩亚洲第一页| 亚洲精品理论电影| 久久久久久久香蕉网| 91爱视频在线| 91精品91久久久久久| 91日本在线视频| 亚洲第一偷拍网| 一夜七次郎国产精品亚洲| 日本精品免费一区二区三区| 日韩精品视频免费专区在线播放| 中文字幕av日韩| 日韩精品免费一线在线观看| 九九九久久久久久| 91色精品视频在线| 欧美成人免费一级人片100| 欧美激情性做爰免费视频| 欧美日韩第一视频| 欧美疯狂xxxx大交乱88av| 亚洲午夜女主播在线直播| 欧美极品少妇与黑人| 自拍亚洲一区欧美另类| 亚洲人成绝费网站色www| 亚洲免费电影一区| 国产精品久久久一区| 成人中心免费视频| 欧美成人亚洲成人| 亚洲国产又黄又爽女人高潮的| 国产亚洲精品日韩| 91精品在线观看视频| 日韩国产高清视频在线| 国产在线视频一区| 米奇精品一区二区三区在线观看| 成人免费在线视频网址| 国产九九精品视频| 国产999在线| xx视频.9999.com| 日韩电视剧免费观看网站| 日本免费在线精品| 国产一区二区三区在线观看网站| 精品亚洲永久免费精品| 精品亚洲aⅴ在线观看| 国产精品久久久久久久久久久久久| 福利一区视频在线观看| 亚洲第一精品夜夜躁人人爽| 中文字幕亚洲欧美| 国产欧美精品日韩精品| 亚洲一品av免费观看| 久久久久久久久久久网站| 国a精品视频大全| 亚洲精品欧美一区二区三区| 91精品综合久久久久久五月天| 日韩国产中文字幕| 国产一区二区三区在线视频| 国产精品九九九| 欧美国产日韩一区二区三区| 青草青草久热精品视频在线观看| 伊人久久男人天堂| 91最新在线免费观看| 日韩在线观看免费全集电视剧网站| 在线精品国产欧美| 成人免费视频网| 国产亚洲精品久久久久久| 国产成人jvid在线播放| 欧美激情亚洲综合一区| 欧美黑人性视频| 精品中文字幕在线观看| 亚洲第一视频网站| 国产日韩欧美在线观看| 欧美亚洲另类在线| 国产亚洲精品久久久优势| 亚洲第一在线视频| 国产成人一区二区三区小说| 免费成人高清视频| 青草青草久热精品视频在线网站| 成人激情综合网| 日本伊人精品一区二区三区介绍| 欧美日韩国产中文精品字幕自在自线| 亚洲天堂开心观看| 欧美激情视频播放| 亚洲高清一二三区| 另类色图亚洲色图| 91在线|亚洲| 国产亚洲精品久久久久久777| 亚洲一区二区三区视频播放| 国产精品入口尤物| 国产精品久久久久久久久粉嫩av| 欧美日韩国产丝袜美女| 亚洲自拍小视频免费观看| 最近2019中文免费高清视频观看www99| 黄色成人在线播放| 日韩成人xxxx| 欧美伊久线香蕉线新在线| 深夜成人在线观看| 欧美成人精品三级在线观看| 综合欧美国产视频二区| 国产精品视频久久久| 国内精品伊人久久| 欧美精品亚州精品| 日韩有码在线观看| 亚洲色图25p| 国产精品久久综合av爱欲tv| 不卡av在线网站| 欧美激情综合亚洲一二区| 97精品一区二区三区| 国产视频丨精品|在线观看| 国产成人精彩在线视频九色| 欧美日韩福利在线观看| 91在线直播亚洲| 日韩在线国产精品| 欧美性猛交xxxxx免费看| 欧美国产日本在线| 成人午夜激情免费视频| 色伦专区97中文字幕| 午夜精品一区二区三区av| 国产成人综合久久| 亚洲成人av中文字幕| 96精品视频在线| 精品久久久免费| 黄色一区二区在线| 国产精品人成电影在线观看| 久久精品福利视频| 国产欧美日韩中文| 久久中文字幕视频| 亚洲精品国产精品国自产观看浪潮| 日韩有码视频在线| 欧美理论电影在线播放| 精品福利在线观看| 国产日韩av在线播放| 亚洲一区国产精品| 日韩精品黄色网| 欧美精品成人91久久久久久久| 欧美日韩国产一区二区| 久久国产精品亚洲| 中文字幕日韩电影| 精品国产乱码久久久久久天美| 一区二区三区精品99久久| 日韩欧美亚洲国产一区| 78色国产精品| 欧美精品免费在线| 国产美女主播一区| 91久久久久久国产精品| 久久久久久久999精品视频| 日韩在线观看免费网站| 日韩av在线不卡| 国产精品自产拍在线观看中文| 黄色成人av在线| 国产精品视频一区国模私拍| 91精品国产91久久久久久久久| 久久久国产精彩视频美女艺术照福利| 91产国在线观看动作片喷水| 久久综合五月天| 日韩av免费一区| 91夜夜揉人人捏人人添红杏| 欧美巨猛xxxx猛交黑人97人| 国产日韩中文字幕在线| 亚洲女在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲色图综合网| 亚洲视频免费一区|