Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
、介紹
XPath(XML Path Language)是一種用于在 XML 文檔中定位節(jié)點(diǎn)的查詢語(yǔ)言。它提供了一種簡(jiǎn)潔而強(qiáng)大的方式來(lái)遍歷和選擇 XML 文檔中的元素和屬性
二、語(yǔ)法
表達(dá)式 | 描述 | 示例 |
nodename | 選擇指定標(biāo)簽名的節(jié)點(diǎn) | html 將選擇所有名為html 的節(jié)點(diǎn)。 |
* | 選擇所有節(jié)點(diǎn) | * 選擇文檔中的所有節(jié)點(diǎn) |
/nodename | 從根節(jié)點(diǎn)開(kāi)始選擇,只能一層一層的往下找 | /html/body/div將選擇文檔中的所有div 節(jié)點(diǎn) |
//tagname | 選擇任意位置的節(jié)點(diǎn) | //div將選擇文檔中的所有div 節(jié)點(diǎn) |
@ | 選擇具有指定屬性名和屬性值的節(jié)點(diǎn),或者獲取屬性 | //div[@id="billboard"]//a/@href,[@id="billboard"]獲取id=billboard的div,@href獲取href屬性 |
. | 選取當(dāng)前節(jié)點(diǎn) | .//div[@id="billboard"] |
.. | 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) | ..//div[@id="billboard"] |
三、謂語(yǔ)
表達(dá)式 | 描述 | 示例 |
[condition] | 添加條件來(lái)篩選節(jié)點(diǎn) | //div[@id="billboard"]獲取id=billboard的div |
position() | 選擇具有指定位置的節(jié)點(diǎn) | //div[@id="billboard"]//tr[position()=1]獲取第一個(gè)tr,等同于 //div[@id="billboard"]//tr[1] |
last() | 選擇最后一個(gè)節(jié)點(diǎn) | //div[@id="billboard"]//tr[last()] 獲取最后一個(gè)tr |
四、運(yùn)算符
表達(dá)式 | 描述 | 示例 |
| | 計(jì)算兩個(gè)節(jié)點(diǎn)集 | //book | //cd,返回所有擁有 book 和 cd 元素的節(jié)點(diǎn)集 |
+ | 加 | 8 + 4 |
- | 減 | 8 - 4 |
* | 乘 | 8 * 4 |
div | 除 | 8 div 4 |
> | 大于 | //div[@id="billboard"]//tr[position()>1]獲取位置大于2的tr |
< | 小于 | //div[@id="billboard"]//tr[position()<2]獲取位置小于2的tr |
= | 等于 | //div[@id="billboard"]//tr[position()=1]獲取第一個(gè)tr,等同于 //div[@id="billboard"]//tr[1] |
!= | 非等于 | //div[@id="billboard"]//tr[position()=1]獲取位置非等于1的元素 |
>= | 大于等于 | //div[@id="billboard"]//tr[position()>=2]獲取位置大于等于2的tr |
<= | 小于等于 | //div[@id="billboard"]//tr[position()<=2]獲取位置小于等于2的tr |
and | 與 | //div[@id="billboard"]//tr[@class='test' and position()>2] 獲取class為test且位置大于2的tr |
or | 或 | //div[@id="billboard"]//tr[position()=1 or position()=2]獲取位置等于1和等于2的tr |
not | 非 | //div[@id="billboard"]//tr[not(position()=1)]獲取位置非1的的tr |
五、軸(Axis)
表達(dá)式 | 描述 |
ancestor | 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)。 |
ancestor-or-self | 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身。 |
attribute | 選取當(dāng)前節(jié)點(diǎn)的所有屬性。 |
child | 選取當(dāng)前節(jié)點(diǎn)的所有子元素。 |
descendant | 選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)。 |
descendant-or-self | 選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身。 |
following | 選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)。 |
following-sibling | 選取當(dāng)前節(jié)點(diǎn)之后的所有兄弟節(jié)點(diǎn) |
namespace | 選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)。 |
parent | 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。 |
preceding | 選取文檔中當(dāng)前節(jié)點(diǎn)的開(kāi)始標(biāo)簽之前的所有節(jié)點(diǎn)。 |
preceding-sibling | 選取當(dāng)前節(jié)點(diǎn)之前的所有同級(jí)節(jié)點(diǎn)。 |
self | 選取當(dāng)前節(jié)點(diǎn)。 |
六、常用函數(shù)
更多函數(shù)請(qǐng)參考:https://www.runoob.com/xpath/xpath-functions.html
表達(dá)式 | 描述 | 示例 |
position() | 選擇具有指定位置的節(jié)點(diǎn) | //div[@id="billboard"]//tr[position()=1]獲取第一個(gè)tr,等同于 //div[@id="billboard"]//tr[1] |
last() | 選擇最后一個(gè)節(jié)點(diǎn) | //div[@id="billboard"]//tr[last()] 獲取最后一個(gè)tr |
text() | 獲取節(jié)點(diǎn)的文本內(nèi)容 | //div[@id="billboard"]//a/text() 獲取div[@id="billboard"]下所有a標(biāo)簽中的文本 |
contains(@attr,?'value')???? | 模糊匹配 | //div[@id="billboard"]//a[contains(@href, '35698284')] 選擇href中包含35698284的a標(biāo)簽 |
starts-with(@attr,?'value')? | 是否以指定字符開(kāi)頭 | //div[@id="billboard"]//a[starts-with(@href, 'https')] 選擇href以https開(kāi)頭的a標(biāo)簽 |
ends-with(@attr,?'value') | 是否以指定字符結(jié)尾 | //div[@id="billboard"]//a[ends-with(@href, '35698284')] 選擇href以35698284結(jié)尾的a標(biāo)簽 |
、什么是節(jié)點(diǎn)
回顧概念:
文檔:document
元素:頁(yè)面中所有的標(biāo)簽,元素---element, 標(biāo)簽----元素---對(duì)象
節(jié)點(diǎn):頁(yè)面中所有的內(nèi)容(標(biāo)簽,屬性,文本(文字,換行,空格,回車(chē))),Node
根元素:html標(biāo)簽
節(jié)點(diǎn)node | nodeType | nodeName | nodeValue |
元素節(jié)點(diǎn) | 1 | 標(biāo)簽名(大寫(xiě)) | null |
屬性節(jié)點(diǎn) | 2 | 屬性名 | 屬性值 |
文本節(jié)點(diǎn) | 3 | #text | 文本內(nèi)容 |
CDATA節(jié)點(diǎn) | 4 | #cdata-section | CDATA區(qū)域內(nèi)容 |
實(shí)體引用名稱節(jié)點(diǎn) | 5 | 引用名稱 | null |
實(shí)體名稱節(jié)點(diǎn) | 6 | 實(shí)體名稱 | null |
處理指令節(jié)點(diǎn) | 7 | target | entire content cluding the target |
注釋節(jié)點(diǎn) | 8 | #comment | 注釋內(nèi)容 |
文檔節(jié)點(diǎn) | 9 | #document | null |
文檔類(lèi)型節(jié)點(diǎn) | 10 | doctype的名稱 | null |
文檔片段節(jié)點(diǎn) | 11 | #document-fragment | null |
DTD聲明節(jié)點(diǎn) | 12 | 符號(hào)名稱 | null |
****節(jié)點(diǎn)的屬性:(可以使用標(biāo)簽--元素.出來(lái),可以使用屬性節(jié)點(diǎn).出來(lái),文本節(jié)點(diǎn).點(diǎn)出來(lái))
nodeType:節(jié)點(diǎn)的類(lèi)型
nodeName:節(jié)點(diǎn)的名字
nodeValue:節(jié)點(diǎn)的值
二、節(jié)點(diǎn)的獲取(包含元素節(jié)點(diǎn))
相關(guān)html代碼
<div id="dv">
<span>這是div中的第一個(gè)span標(biāo)簽</span>
<p>這是div中的第二個(gè)元素,第一個(gè)p標(biāo)簽</p>
<ul id="uu">
<li>喬峰</li>
<li>鹿茸</li>
<li id="three">段譽(yù)</li>
<li>卡卡西</li>
<li>雛田</li>
</ul>
</div>
獲取父節(jié)點(diǎn)(屬性):
// 獲取某節(jié)點(diǎn)的父級(jí)節(jié)點(diǎn)
node.parentNode
// 獲取某節(jié)點(diǎn)的父級(jí)元素
node.parentElement
獲取子節(jié)點(diǎn)(屬性):
// 獲取某節(jié)點(diǎn)的子節(jié)點(diǎn)
node.childNodes
// 獲取某節(jié)點(diǎn)的子元素
node.children
屬性節(jié)點(diǎn)(方法):
// 獲取屬性節(jié)點(diǎn)
node.getAttributeNode("name")
獲取其他相關(guān)節(jié)點(diǎn)(屬性)—— 拓展:
// 獲取某節(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)
node.firstChild;//-----------------------IE8中是第一個(gè)子元素
// 獲取某節(jié)點(diǎn)的第一個(gè)子元素
node.firstElementChild;//----------------IE8中不支持
// 獲取某節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)
node.lastChild;//------------------------IE8中是第一個(gè)子元素
// 獲取某節(jié)點(diǎn)的最后一個(gè)子元素
node.lastElementChild;//-----------------IE8中不支持
// 獲取某節(jié)點(diǎn)的前一個(gè)兄弟節(jié)點(diǎn)
node.previousSibling;
// 獲取某節(jié)點(diǎn)的前一個(gè)兄弟元素
node.previousElementSibling;
// 獲取某節(jié)點(diǎn)的后一個(gè)兄弟節(jié)點(diǎn)
node.nextSibling;
// 獲取某節(jié)點(diǎn)的后一個(gè)兄弟元素
node.nextElementSibling;
案例:點(diǎn)擊按鈕設(shè)置div中p標(biāo)簽改變背景顏色(掌握)
html和css代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
width: 300px;
height: 450px;
border: 1px solid red;
}
</style>
</head>
<body>
<input type="button" value="變色" id="btn" />
<div id="dv">
<span>這是span</span>
<p>這是p</p>
<span>這是span</span>
<p>這是p</p>
<span>這是span</span>
<p>這是p</p>
<span>這是span</span>
<a href="http://www.baidu.com">百度</a>
</div>
</body>
</html>
JavaScript代碼
<html>
<head>
<title>DOM 教程</title>
</head>
<body>
<h1>DOM 第一課</h1>
<p class="example">Hello world!</p>
<input name="myInput" type="text" size="20" /><br />
<h1 id="myHeader">This is a header</h1>
</body>
</html>
上面的 HTML 中:
<html> 節(jié)點(diǎn)沒(méi)有父節(jié)點(diǎn);它是根節(jié)點(diǎn)
<head> 和 <body> 的父節(jié)點(diǎn)是 <html> 節(jié)點(diǎn)
文本節(jié)點(diǎn) "Hello world!" 的父節(jié)點(diǎn)是 <p> 節(jié)點(diǎn)
并且:
<html> 節(jié)點(diǎn)擁有兩個(gè)子節(jié)點(diǎn):<head> 和 <body>
<head> 節(jié)點(diǎn)擁有一個(gè)子節(jié)點(diǎn):<title> 節(jié)點(diǎn)
<title> 節(jié)點(diǎn)也擁有一個(gè)子節(jié)點(diǎn):文本節(jié)點(diǎn) "DOM 教程"
<h1> 和 <p> 節(jié)點(diǎn)是同胞節(jié)點(diǎn), 同時(shí)也是 <body> 的子節(jié)點(diǎn)
并且:
<head> 元素是 <html> 元素的首個(gè)子節(jié)點(diǎn)
<body> 元素是 <html> 元素的最后一個(gè)子節(jié)點(diǎn)
<h1> 元素是 <body> 元素的首個(gè)子節(jié)點(diǎn)
<p> 元素是 <body> 元素的最后一個(gè)子節(jié)點(diǎn)
訪問(wèn)節(jié)點(diǎn):
var oLi=document.getElementsByTagName("li");
var oLi=document.getElementById("myHeader");
var oLi=document.getElementsByName("myInput"); //通過(guò)name屬性訪問(wèn)
querySelector訪問(wèn)方式: IE8開(kāi)始支持, IE8以下不支持
var div=document.querySelector("#myHeader"); //通過(guò)id訪問(wèn)
var div=document.querySelector("li"); //通過(guò)標(biāo)簽訪問(wèn)
document.querySelector(".example"); //通過(guò)class屬性訪問(wèn)
獲取表單值
document.getElementById(id).value
querySelector() 方法返回文檔中匹配指定 CSS 選擇器的一個(gè)元素。
注意: querySelector() 方法僅僅返回匹配指定選擇器的第一個(gè)元素。
如果你需要返回所有的元素, 請(qǐng)使用 querySelectorAll() 方法替代。
利用父子兄關(guān)系查找節(jié)點(diǎn):
使用childNodes屬性
對(duì)象屬性
nodeName 返回當(dāng)前節(jié)點(diǎn)名字
元素節(jié)點(diǎn)的 nodeName 是標(biāo)簽名稱
屬性節(jié)點(diǎn)的 nodeName 是屬性名稱
文本節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #text
文檔節(jié)點(diǎn)的 nodeName 永遠(yuǎn)是 #document
nodeValue 返回當(dāng)前節(jié)點(diǎn)的值, 僅對(duì)文本節(jié)點(diǎn)和屬性節(jié)點(diǎn)
對(duì)于文本節(jié)點(diǎn), nodeValue 屬性包含文本。
對(duì)于屬性節(jié)點(diǎn), nodeValue 屬性包含屬性值。
nodeValue 屬性對(duì)于文檔節(jié)點(diǎn)和元素節(jié)點(diǎn)是不可用的。
注意:nodeValue與tagName的區(qū)別對(duì)于空白節(jié)點(diǎn)的返回值:nodeValue返回null, tagName返回undefined
對(duì)于文本節(jié)點(diǎn)的返回值:nodeValue返回文本, tagName返回undefined
nodeType 檢測(cè)節(jié)點(diǎn)類(lèi)型:
alert(document.nodeType);
元素節(jié)點(diǎn)的nodeType值為1; 標(biāo)簽名稱
屬性節(jié)點(diǎn)的nodeType值為2; 屬性名稱 屬性節(jié)點(diǎn)不能算是其元素節(jié)點(diǎn)的子節(jié)點(diǎn)
文本節(jié)點(diǎn)的nodeType值為3; #text
注釋(Comment) 8: #comment
文檔(Document) 9 #document <HTML>
文檔類(lèi)型(DocumentType) 10: <!DOCTYPE HTML PUBLIC"...">
節(jié)點(diǎn) nodeType nodeName nodeValue
元素節(jié)點(diǎn) 1 大寫(xiě)的標(biāo)簽名 null
屬性節(jié)點(diǎn) 2 屬性名 屬性值
文本節(jié)點(diǎn) 3 #text 文本值
tagName 返回標(biāo)簽的名稱, 僅對(duì)元素節(jié)點(diǎn)
parentNode 返回當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn), 如果存在的話
childNodes 返回當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)集合
firstChild 對(duì)標(biāo)記的子節(jié)點(diǎn)集合中第一個(gè)節(jié)點(diǎn)的引用, 如果存在的話
lastChild 對(duì)標(biāo)記的子節(jié)點(diǎn)集合中最后一個(gè)節(jié)點(diǎn)的引用, 如果存在的話
previousSibling 對(duì)同屬一個(gè)父節(jié)點(diǎn)的前一個(gè)兄弟節(jié)點(diǎn)的引用
nextSibling 對(duì)同屬一個(gè)父節(jié)點(diǎn)的下一個(gè)兄弟節(jié)點(diǎn)的引用
Attributes 返回當(dāng)前節(jié)點(diǎn)(標(biāo)記)屬性的列表 用于XML文件
ownerDocument 返回節(jié)點(diǎn)所屬的根元素
一些 DOM 對(duì)象方法
getElementById() 返回帶有指定 ID 的元素。
getElementsByTagName() 返回包含帶有指定標(biāo)簽名稱的所有元素的節(jié)點(diǎn)列表(集合/節(jié)點(diǎn)數(shù)組)。
getElementsByName() 返回包含帶有指定類(lèi)名的所有元素的節(jié)點(diǎn)列表。
appendChild() 把新的子節(jié)點(diǎn)添加到指定節(jié)點(diǎn)。
removeChild() 刪除子節(jié)點(diǎn)。
replaceChild() 替換子節(jié)點(diǎn)。
insertBefore() 在指定的子節(jié)點(diǎn)前面插入新的子節(jié)點(diǎn)。
createAttribute() 創(chuàng)建屬性節(jié)點(diǎn)。
createElement() 創(chuàng)建元素節(jié)點(diǎn)。
createTextNode() 創(chuàng)建文本節(jié)點(diǎn)。
getAttribute() 返回指定的屬性值。
setAttribute() 把指定屬性設(shè)置或修改為指定的值。
刪除、替換、插入子節(jié)點(diǎn)必須通過(guò)父節(jié)點(diǎn)的removeChild()方法來(lái)完成的
createAttribute() 創(chuàng)建屬性節(jié)點(diǎn)
var att=document.createAttribute("class");
att.value="democlass";
document.getElementsByTagName("H1")[0].setAttributeNode(att);
以上代碼可以簡(jiǎn)化為
document.getElementsByTagName("H1")[0].class="democlass";
createAttribute()結(jié)合setAttributeNode()使用
等同于:
document.getElementsByTagName("H1")[0].setAttributeNode("class", "democlass");
DOM獲取所有子節(jié)點(diǎn):
<html>
<head>
<title>childNodes</title>
<script language="javascript">
function myDOMInspector(){
var oUl=document.getElementById("myList"); //獲取<ul>標(biāo)記
var DOMString="";
if(oUl.hasChildNodes()){ //判斷是否有子節(jié)點(diǎn)
var oCh=oUl.childNodes;
for(var i=0;i<oCh.length;i++) //逐一查找
DOMString +=oCh[i].nodeName + "\n";
}
alert(DOMString);
}
</script>
</head>
<body onload="myDOMInspector()">
<ul id="myList">
<li>糖醋排骨</li>
<li>圓籠粉蒸肉</li>
<li>泡菜魚(yú)</li>
<li>板栗燒雞</li>
<li>麻婆豆腐</li>
</ul>
</body>
</html>
使用parentNode屬性:
<html>
<head>
<title>parentNode</title>
<script language="javascript">
function myDOMInspector(){
var myItem=document.getElementById("myDearFood");
alert(myItem.parentNode.tagName); //返回值為ul
}
</script>
</head>
<body onload="myDOMInspector()">
<ul>
<li>糖醋排骨</li>
<li>圓籠粉蒸肉</li>
<li>泡菜魚(yú)</li>
<li id="myDearFood">板栗燒雞</li>
<li>麻婆豆腐</li>
</ul>
</body>
</html>
DOM的兄弟關(guān)系:
<html>
<head>
<title>Siblings</title>
<script language="javascript">
function myDOMInspector(){
var myItem=document.getElementById("myDearFood");
//訪問(wèn)兄弟節(jié)點(diǎn)
var nextListItem=myItem.nextSibling;
var preListItem=myItem.previousSibling;
alert(nextListItem.tagName +" "+ preListItem.tagName);
}
</script>
</head>
<body onload="myDOMInspector()">
<ul>
<li>糖醋排骨</li>
<li>圓籠粉蒸肉</li>
<li>泡菜魚(yú)</li>
<li id="myDearFood">板栗燒雞</li>
<li>麻婆豆腐</li>
</ul>
</body>
</html>
編寫(xiě)自定義函數(shù)解決Firefox等瀏覽器包含眾多的空格作為文本節(jié)點(diǎn)問(wèn)題。
<html>
<head>
<title>Siblings</title>
<script language="javascript">
function nextSib(node){
var tempLast=node.parentNode.lastChild;
//判斷是否是最后一個(gè)節(jié)點(diǎn),如果是則返回null
if(node==tempLast)
return null;
var tempObj=node.nextSibling;
//逐一搜索后面的兄弟節(jié)點(diǎn),直到發(fā)現(xiàn)元素節(jié)點(diǎn)為止
while(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
tempObj=tempObj.nextSibling;
//三目運(yùn)算符,如果是元素節(jié)點(diǎn)則返回節(jié)點(diǎn)本身,否則返回null
return (tempObj.nodeType==1)?tempObj:null;
}
function prevSib(node){
var tempFirst=node.parentNode.firstChild;
//判斷是否是第一個(gè)節(jié)點(diǎn),如果是則返回null
if(node==tempFirst)
return null;
var tempObj=node.previousSibling;
//逐一搜索前面的兄弟節(jié)點(diǎn),直到發(fā)現(xiàn)元素節(jié)點(diǎn)為止
while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
tempObj=tempObj.previousSibling;
return (tempObj.nodeType==1)?tempObj:null;
}
function myDOMInspector(){
var myItem=document.getElementById("myDearFood");
//獲取后一個(gè)元素兄弟節(jié)點(diǎn)
var nextListItem=nextSib(myItem);
//獲取前一個(gè)元素兄弟節(jié)點(diǎn)
var preListItem=prevSib(myItem);
alert("后一項(xiàng):" + ((nextListItem!=null)?nextListItem.firstChild.nodeValue:null) + " 前一項(xiàng):" + ((preListItem!=null)?preListItem.firstChild.nodeValue:null) );
}
</script>
</head>
<body onload="myDOMInspector()">
<ul>
<li>糖醋排骨</li>
<li>圓籠粉蒸肉</li>
<li>泡菜魚(yú)</li>
<li id="myDearFood">板栗燒雞</li>
<li>麻婆豆腐</li>
</ul>
</body>
</html>
注意:最新版的IE瀏覽器也包含眾多的空格作為文本節(jié)點(diǎn);
設(shè)置節(jié)點(diǎn)屬性:
getAttribute()方法和setAttibute()方法
<html>
<head>
<title>getAttribute()</title>
<script language="javascript">
function myDOMInspector(){
//獲取圖片
var myImg=document.getElementsByTagName("img")[0];
//獲取圖片title屬性
alert(myImg.getAttribute("title")); //也可以用myImg.title獲取屬性值
}
</script>
</head>
<body onload="myDOMInspector()">
<img src="01.jpg" title="情人坡" />
</body>
</html>
<html>
<head>
<title>setAttribute()</title>
<script language="javascript">
function changePic(){
//獲取圖片
var myImg=document.getElementsByTagName("img")[0];
//設(shè)置圖片src和title屬性
myImg.setAttribute("src","02.jpg"); //可以在屬性節(jié)點(diǎn)不存在時(shí),添加節(jié)點(diǎn)的屬性值;
myImg.setAttribute("title","紫荊公寓"); //也可以通過(guò)myImg.title="紫荊公寓";
}
</script>
</head>
<body>
<img src="01.jpg" title="情人坡" onclick="changePic()" />
</body>
</html>
setAttribute()設(shè)置HTML標(biāo)簽的屬性
oTable.setAttribute("border", "3"); //為表格邊框設(shè)置寬度
oTable.setAttribute("border", 3);
oTable.setAttribute("border", "3px"); //經(jīng)過(guò)測(cè)試, 此種寫(xiě)法也正確
建議: 具體格式參照HTML屬性值的語(yǔ)法格式
setAttibute()設(shè)置行內(nèi)樣式
obj.setAttribute("style", "position:absolute;left:200px;top:200px");
注意:具體格式參考CSS樣式的語(yǔ)法格式
setAttibute()設(shè)置事件屬性
obj.setAttribute("onclick", "remove_img()"); //remove_img() 編寫(xiě)自定義函數(shù), 這里不能使用自定義函數(shù)
注意:關(guān)于文本節(jié)點(diǎn)兼容性
元素節(jié)點(diǎn)
子節(jié)點(diǎn): childNodes children
首尾子節(jié)點(diǎn): firstChild firstElementChild
lastChild lastElementChild
兄弟節(jié)點(diǎn): nextSibling nextElementSibling
previousSibling previousElementSibling
childNodes firstChild lastChild nextSibling previousSibling屬性IE6-IE8版本瀏覽器不會(huì)返回空白節(jié)點(diǎn),
IE9以上版本瀏覽器會(huì)返回文本節(jié)點(diǎn), W3C瀏覽器(包括火狐瀏覽器)也會(huì)返回文本節(jié)點(diǎn)
children firstElementChild lastElementChild nextElementSibling previousElementSibling 只返回元素節(jié)點(diǎn), 不會(huì)返回空白節(jié)點(diǎn)
注意: DOM操作必須保住DOM節(jié)點(diǎn)必須存在, 當(dāng)然也包括使用css樣式display:none隱藏的DOM節(jié)點(diǎn), 否則會(huì)導(dǎo)致js語(yǔ)法錯(cuò)誤;
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。