[英]How to read this DOM object element elegantly without using jQuery find()?
我得到一些xml数据,将其解析为dom对象,以便我可以使用jQuery搜索和获取值。
像这样:
<field>
<name>Jesus</name>
<group>God</group>
<blah>Hello World</blah>
</field>
在我的js中,我使用了each()
遍历该字段:
data.find('field').each(function() {
$(this).find("group").text();
}
我可以使用find()
来获取每个字段和内容,但是我不想使用find,因为它可能会变得昂贵。 我看过jQuery API,但我不认为我有一个函数可以让我做类似“ getElement('name')
”或children('name')
或next('name')
等的事情。
由于可读性和将来可能发生的变化,我也不想使用诸如$(this)[0].childNodes[0]
类的索引。
任何想法?
我给你一个根本不使用jQuery的答案! 怎么样?
您的问题似乎是在搜索XML结构。 因此,您将其转换为DOM树,但是现在您担心遍历该树的性能问题。
解决方案很简单:不要将XML转换为HTML,也不要将其转换为JavaScript对象文字,然后使用它。 这将是最简单,最有效的。 供参考以将XML转换为对象文字: XML到JavaScript对象
现在,您可以自由使用JavaScript提供的所有工具来处理数据,并且可以避免任何jQuery / DOM效率问题。
function alertit(jqueryObject) { if (jqueryObject.length === 0) return; jqueryObject.each(function() { alert(this.nodeName.toLowerCase()); }); alertit(jqueryObject.children()); } alertit($(xml));
也试试这个
var xmlData = "<field><name>Jesus</name><group>God</group><blah>Hello World</blah></field>";
$(document).ready(function () {
var data = $.parseXML(xmlData);
$(data).each(function (i, node) {
alert($(node).text());
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.