1、用 childNodes 属性,按顺序取
实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。
//pId 待取节点父节点序号
//cId 待取节点序号
function getXmlNodeValue(pId, cId) {var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load("employeeInfo.xml")
var nodes = xmlDoc.documentElement.childNodes[pId].childNodes[cId]return nodes.childNodes[0].text
}
调用方法:alert(getXmlNodeValue(1, 2))
2、用 for 循环来取
实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。
//nodeValue 待取节点的所属节点值
function getXmlNodeValueFor(nodeValue){var xmlDoc
try {
//创建一个 ie 支持的 XML 文档对象
xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
}catch(e){
try{
//创建FireFox空的XML文档对象
xmlDoc=document.implementation.createDocument("","",null)
}catch(e){
alert(e.message)
return ""
}
}
xmlDoc.async = false
try {
xmlDoc.load("employeeInfo.xml")
}catch(e){
alert(e.message)
return ""
}
var xd=xmlDoc.documentElement.childNodes
if(xd==null)
return ""
var tempValue
for(var i=0i<xd.lengthi++){
if(xd[i].childNodes[0].childNodes[0].nodeValue==nodeValue) tempValue=xd[i].childNodes[2].childNodes[0].nodeValue
}
return tempValue
}
调用方法:alert(getXmlNodeValueFor("王佳琳"))
document.getElementsByTagName()
根据标签名获取,如<p><div>
如document.getElementsByTagName("h1")
document.getElementsByName()
根据标签内的name属性值获取
如<input name='x' />,document.getElementsByName('x')
document.getElementById()
根据id来获取
如document.getElementById("wrap")
document.querySelector()
html5新出的选择方式,选择的是数组中的第一个元素,有些类似jquery的选择方式
如document.querySelector(".div1")
如果满意,望采纳!提问者的点赞和采纳就是我们的动力和追求,谢谢!
首先我们来介绍一下DOM中元素与节点间的关系:页面中所有内容都是节点[包括元素,属性,文本],所以节点是包括元素的。以下是节点的三个属性:
若是火狐和chrome浏览器上述方法不存在兼容问题,而若是在IE8浏览器中后四组内容只能获取元素,无法获取文本或属性。即原获取节点方法-->取元素;原获取元素方法-->undefined。
jQuery中是以方法的形式进行调用,同时都是用来获取元素: