0

スクリプトに小さな問題があり、立ち往生しています... 名前に関係なく、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);
            }
4

2 に答える 2

2

XML データがXMLDocument最初のものでない場合は、 で解析する必要があります$.parseXML()。その後、単純なセレクターを使用して要素の数を見つけることができます。以下にを示します。

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());

<root>ps: XML を有効にするために追加する必要があります。

于 2012-08-02T09:37:41.207 に答える
1
$('*') 
      .filter(function() { 
          return this.nodeName.toLowerCase().match(/tag_*/); 
      }).each(function(){
          alert($(this).find('element').size());
      });

このJsFiddleを試してみてください

于 2012-08-02T09:26:17.560 に答える