【问题标题】:JQuery XML option nodeJQuery XML 选项节点
【发布时间】:2009-09-25 11:09:19
【问题描述】:

当有一个带有选项节点的节点时,我在使用 JQuery 解析 XML 时遇到问题

<preferences><dashboard>
<report id="si_pg_vw" order="0">
  <header>
    <data>
      <option type="reportname" value="Page View"/>
    </data>
  </header>
</report>

firebug 中的以下代码不返回任何子项

$reportElement.find("data")[0]

但是,如果我将选项更改为任何其他值(“option2”、“test”等),那么上面的行将返回一个正确的子项。

是我遗漏了什么还是有错误?

谢谢

约翰

【问题讨论】:

  • 一些事情:preferencesdashboard 标记是否在 XML 中正确关闭?你给变量$reportElement分配了什么?为什么要对数据结果使用索引而不是对其进行迭代?

标签: jquery xml option


【解决方案1】:
$reportElement.find("data")[0]

不会工作。试试

$reportElement.find("data:first")

$reportElement.find("data:eq(0)")

此外,您没有在示例中关闭“仪表板”和“首选项”。

这是完整的例子;

var myXML = <preferences>
              <dashboard>
                 <report id="si_pg_vw" order="0">
                    <header>
                      <data>
                         <option type="reportname" value="Page View"/>
                      </data>
                    </header>
                </report>
             </dashboard>
           </preferences>

myXML = jQuery(myXML);
myXML.find('data option:first');
//OR
myXML.find('data option:eq(0)');
//OR
myXML.find('data option').each(function(){ window.console.log(this) });

【讨论】:

    【解决方案2】:

    这可能与 HTML option 标签需要是 select 标签的子标签有关。

    确保响应的内容类型为“text/xml”。这可能会指示 jQuery 将响应解析为 xml 而不是 html,从而正确识别选项标签。

    【讨论】:

    • 不幸的是,这是来自服务器,其他应用程序依赖于这个节点作为“选项”。
    • 查看我编辑的答案。我相信你需要设置内容类型标题。
    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2012-11-27
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多