從li看html標籤屬性(attribute)和dom元素的屬性(property)

先上實例代碼:

li實例

<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
  </head>

  <body>
  	<ul>
  		<li id="fk" value="1">反恐</li>
  		<li id="fk" value="fankong">反恐</li>
  		<li id="ms" value="moshou">魔獸</li>
  		<li id="xj" value="xj" ss="dd">星際</li>
  	</ul>

  <script>
    var fkNode = document.getElementById("fk");
    console.log(fkNode);                                     //1
	var xjNode = document.getElementById("xj");
	console.log(xjNode);                                    //<li id="xj" value="xj" ss="dd">星際</li>
	console.log(xjNode.getAttribute("value"));               //xj
	console.log(xjNode.getAttributeNode("value").nodeValue); //xj
	console.log(xjNode.value);                               //0
  </script>
  </body>
</html>

最後打印出來爲0是由於:

元素的屬性有attribute 和 property 兩種。

li 元素的 value屬性(property) 有特殊的作用,其值只能是數字

如果設置的值不是數字將會只反應到元素的 value屬性(attribute).

HTML <li> 標籤的 value 屬性 定義和用法 value 屬性規定規定列表項目的數字。接下來的列表項目會從該數字開始進行升序排列。 瀏覽器支持 儘管不贊成使用 value 屬性,不過所有瀏覽器都支持 value 屬性。 兼容性註釋 在 HTML 4.01 中,不贊成使用 li 元素的 value 屬性;在 XHTML 1.0 Strict DTD 中,不支持 li 元素的 value 屬性。 註釋:目前,還沒有可替代 value 屬性的 CSS 解決方案。

來源:http://www.w3school.com.cn/tags/att_li_value.asp

當爲有序排列時可以清楚看到value的作用

部分區別

從對象來說,attribute是html文檔上標籤屬性,而property則是對應dom元素的自身屬性。

從操作方法上來看,attribute可以通過dom core規範的接口 getAttribute和setAttribute.

詳細區別與聯繫可以看上一篇JavaScript 中 Property 和 Attribute 的區別詳解

參考資料

不知道爲何用value取值拿到的是0,getAttribute方法拿到的就是value屬性的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章