有没有一种方法可以通过属性获取元素xml?
答
jquery可以很容易地做到这一点。 http://think2loud.com/224-reading-xml-with-jquery/
+0
我正在构建一个XML,jQuery与IE不能很好地工作。 – Wenn
答
我觉得这是JQuery的免费
document.getElementsByAttribute = function(attribute, value, tagName, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName((tagName || '*'));
return $A(children).inject([], function(elements, child) {
var attributeValue = child.getAttribute(attribute);
if(attributeValue != null) {
if(!value || attributeValue == value) {
elements.push(child);
}
}
return elements;
});
}
已经向我指出,我贴错了脚本这证明一个新的答案..嘿嘿阅读here
// document.getElementsByAttribute([string attributeName],[string attributeValue],[boolean isCommaHyphenOrSpaceSeparatedList:false])
document.getElementsByAttribute=function(attrN,attrV,multi){
attrV=attrV.replace(/\|/g,'\\|').replace(/\[/g,'\\[').replace(/\(/g,'\\(').replace(/\+/g,'\\+').replace(/\./g,'\\.').replace(/\*/g,'\\*').replace(/\?/g,'\\?').replace(/\//g,'\\/');
var
multi=typeof multi!='undefined'?
multi:
false,
cIterate=document.getElementsByTagName('*'),
aResponse=[],
attr,
re=new RegExp(multi?'\\b'+attrV+'\\b':'^'+attrV+'$'),
i=0,
elm;
while((elm=cIterate.item(i++))){
attr=elm.getAttributeNode(attrN);
if(attr &&
attr.specified &&
re.test(attr.value)
)
aResponse.push(elm);
}
return aResponse;
}
答
它是很容易使用jQuery。假设我们有这样的字符串。
<document>
<value type="people">
<name>
John
</name>
</value>
<value type="vehicle">
<name>
Ford
</name>
</value>
</document>
然后
var xmlDocument = $.parseXML(str);
$(xmlDocument).find("value[type='people'] name").text()
我们将得到字符串 '约翰' 回来。
不要这样做。这很粗鲁。在抓取它的属性之前尝试对该元素说话。说真的,你能详细说明你的问题吗?你尝试了什么,结果如何? –
我试图得到一个使用javascript而不是jquery.find的元素(“node [id ='1']”) – Wenn
请不要以“Javascript:”为前缀来标题。这就是标签的用途。 –