1

当有一个带有选项节点的节点时,我在使用 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”等),那么上面的行会返回一个正确的孩子。

我错过了什么还是有错误?

谢谢

约翰

4

2 回答 2

1

也许这与 HTML 选项标记需要是选择标记的子级有关。

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

于 2009-09-25T11:36:49.240 回答
1
$reportElement.find("data")[0]

不管用。尝试

$reportElement.find("data:first")

或者

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

ETC

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

这是完整的例子;

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

ETC

于 2009-09-28T14:36:40.277 回答