【问题标题】:jquery parse xml from single and multiple tagsjquery从单个和多个标签解析xml
【发布时间】:2013-12-03 11:44:29
【问题描述】:

从 xml 节点返回文本时遇到问题。这一切都需要是动态的。这是xml:

<instructions>Some ins text.</instructions>
<options>
    <option>1.png</option>
    <option>2.png</option>
    <option>3.png</option>
    <option>4.png</option>
</options>
<noOfOptions>4</noOfOptions>

这里是jquery解析代码:

currentPageData.push({
    title:$(xml).find("page").attr("name"),
    noOfOptions:$(xml).find("noOfOptions").text(), 
    text:$(xml).find("text").text(), 
    instructions:$(xml).find("instructions").text(), 
    option:$(xml).find("option").each(function() {
        $(this).text();
    }),

问题出在选项部分。这只会返回一个对象。我认为这是因为 .each 功能。但我需要所有这些,它们都存在要返回,我需要它在 for 循环中返回文本,如下所示:

for(i=0;i<noOfOptions;i++) {
    currentPageData[0].option[0];
}

上述方法不起作用。我该如何解决?

谢谢!

【问题讨论】:

    标签: javascript jquery xml


    【解决方案1】:

    要获取选项节点的文本内容,试试这个......

    首先,您的 xml 无效。我添加了一个根节点

    var xml = "<root>
                   <instructions>Some ins text.</instructions>
                   <options>
                       <option>1.png</option>
                       <option>2.png</option>
                       <option>3.png</option>
                       <option>4.png</option>
                   </options>
                   <noOfOptions>4</noOfOptions>
               </root>",
        xmlDoc = $.parseXML( xml ),
        $xml = $( xmlDoc ),
        $options = $xml.find("option"); // get all option nodes
    

    然后使用 jquery .each 获取每个选项值

    $.each($options, function() {
        console.log($(this).text());
    });  
    

    希望有帮助

    小提琴: http://jsfiddle.net/JohnMcNulty/vRf9Z/

    【讨论】:

    • 上面第一个代码段中 parsexml 的最后一行不应该是 $options = $xml.find("options"); // 获取所有选项节点?即
    • 嗨@Chiwda,你看过小提琴吗?
    • 好的。我现在明白了。 option 是 options 的子元素。谢谢!
    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 2014-05-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多