我的脚本出现了一个小问题而且我被卡住了...我需要计算xml主标签中的元素,而不管它们的名称。你能告诉我怎么做吗?
$.ajax({
type:"GET",
url:"../amica_programator/data/content_data.xml",
dataType:"xml",
success: function(xml) {
var class_main_content = $('.main_content ul').attr('class');
var xml_element_name = $(xml).find(class_main_content)[0].nodeName.toLowerCase();
if ((class_main_content) == xml_element_name){
var n_elements = $(xml).find(xml_element_name).find("element").size();
alert(n_elements);
}
答案 0 :(得分:2)
如果您的XML数据首先不是XMLDocument
,则应使用$.parseXML()
对其进行解析。之后,您可以使用简单的选择器来查找元素的数量。这是example;
var xml = '<root><tag_01><element></element><element></element><element></element></tag_01><tag_02><element></element><element></element></tag_02></root>',
xmlDoc = $.parseXML(xml)
$xml = $(xmlDoc),
tagName01 = 'tag01',
tagName02 = 'tag02';
alert('total <element> count: ' + $xml.find('element').size());
alert('total <tag_01 > element> count: ' + $xml.find(tagName01 + ' > element').size());
alert('total <tag_02 > element> count: ' + $xml.find(tagName02 + ' > element').size());
ps:我必须添加<root>
才能使XML有效。
答案 1 :(得分:1)
$('*')
.filter(function() {
return this.nodeName.toLowerCase().match(/tag_*/);
}).each(function(){
alert($(this).find('element').size());
});
试试这个JsFiddle