把學習ajax的一些知識記錄一下,以后不斷補充。
用于處理XML文檔的DOM元素屬性
屬性 |
描述 |
childNodes |
返回當前元素所有子元素的數組 |
firstChild |
返回當前元素的第一個下級子元素 |
lastChild |
返回當前元素的最后一個子元素 |
nextSibling |
返回緊跟在當前元素后面的元素 |
nodeValue |
指定表示元素值的讀/寫屬性 |
parentNode |
返回元素的父節點 |
previousSibling |
返回緊鄰當前元素之前的元素 |
用于遍歷XML文檔的DOM元素方法
方法 |
描述 |
getElementById(id) |
獲取文檔中有指定唯一ID屬性值的元素 |
getElementsByTageName(name) |
返回當前元素中有指定標記名的子元素的數組 |
hasChildNodes() |
返回一個布爾值,指示元素是否有子元素 |
getAttribute(name) |
返回元素的屬性值,屬性由name指定 |
屬性/方法 |
描述 |
Document.createElement(tagName) |
文檔對象上的createElement方法可以創建由tagName指定的元素。如果以字符串串div作為方法參數,就會生成一個div元素 |
Document.createTextNode(text) |
文檔對象的createTextNode方法會創建一個包含靜態文本的節點。 |
<element>.appendChild(childNode) |
appendChild方法將指定的節點增加到當前元素的子節點列表(作為一個新的子節點)。例如:可以增加一個option元素,作為select元素的子節點。 |
<element>.getAttribute(name) <element>.setAttribute(name) |
這些方法分別獲得和設置元素中name屬性的值。 |
<element>.insertBefore(newNode,targetNode) |
這個方法將節點newNode作為當前元素的子節點插到targetNode元素前面。 |
<element>.removeAttribute(name) |
這個方法從元素中刪除屬性name。 |
<element>.replaceChild(newNode,oldNode) |
這個方法將節點oldNode替換位節點newNode。 |
<element>.hasChildnodes() |
這個方法返回一個布爾值,指示元素是否有子元素。 |
<element>.cloneNode(true) |
克隆當前元素,并返回新元素 |
1、在XML文檔中文本本身被認為一個節點,而且必須是另外一個節點的子元素,ex)<state>shandong</state> shandong 其實是state的子元素,必須先從state獲取文本元素,再從這個文本元素得到文本內容,
具體代碼如下:
var xmlDoc=xmlHttp.responseXML;
var allStates=xmlDoc.getElementsByTagName("state");//得到一個state的數組
var currentState=null;
for(var i=0;i<allStates.length;i++){
currentState=allStates[i];//得到具體的一個state元素
alert(currentState.childNodes[0].nodeValue);//文本元素是state的第一個子元素
//通過childNodes屬性得到state元素的文本元素,
//nodeValue返回文本元素的內容
}
2、關于瀏覽器的不兼容性引起的問題的解決方法
(1)、如果使用appendChild()將tr添加到一個table中,在ie中將不會出現此行
解決方法:將tr元素添加到表的<tbody>元素中
(2)、IE中不能使用setAttribute正確的設置class屬性,
解決方法:同時使用setAttribute("class","newclassName");和
setAttribute ("className","newclassName");
(3)、IE中不能使用setAttribute設置style屬性
解決方法:<element>.style.cssText="font-size: 12px; "
3、用post方法發送數據的時候,需要設置xmlHttp.setrequestheader("Content-Type","application/x-www-form-urlencoded");讓服務器知道請求體中有請求參數。
4、在請求中加入"&timeStamp="+new Date().getTime()的作用:有些瀏覽器會把多個xmlHttp請求的結果緩存在同一個url,如果對每個請求的響應不同會帶來不好的后果,加上時間戳以后就可以保證URL的唯一性,避免瀏覽器緩存結果。
5、xmlHttp.setrequestheader("contentType","text/html;charset=uft-8");可以解決發送過程中的漢字亂碼問題。
6、動態刷新的實現:核心就是setTimeout()方法通過setTimeout("startCallServer()",5000);方式隔5S后執行startCallServe方法 注意setTimeout方法只執行一次,所以在事件處理函數里要再次調用setTimeout方法這樣形成一個循環調用。