Posted on 2007-06-26 15:26
zht 阅读(999)
评论(0) 编辑 收藏 所属分类:
J2EE
把学习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方法这样形成一个循环调用。