【问题标题】:jquery xml selectjquery xml选择
【发布时间】:2010-04-20 02:34:51
【问题描述】:

如何选择子标签键的文本以'001'开头的项目?

<root>
    <item>
        <key>001001</key>
        <text>thanks</text>
    </item>
    <item>
        <key>001002</key>
        <text>very</text>
    </item>
    <item>
        <key>002001</key>
        <text>much</text>
    </item>
</root>



$(xml).find("item>[filter string]").each(function()
{
    alert(this);
});

【问题讨论】:

  • 您控制 XML 架构吗?将孩子提升到属性可能会更好(&lt;item key="001001" text="thanks"&gt;)。如果&lt;item&gt; 下还有更多内容,即使只是key
  • 谢谢,这是个好建议。

标签: jquery xml selector


【解决方案1】:

在这种情况下你需要.filter()

$(xml).find("item").filter(function() {
  return $(this).find("key").text().indexOf('001') === 0;
}).each(function() {
    alert(this);
});

这会根据文本以001 开头的关键元素过滤项目。但是,如果您可以完全修改架构,这会快得多……如果您要处理许多项目,则在子项中搜索过滤器总体上会有点昂贵。

Jake 的评论建议是一个很好的选择,如果它是一个选项,如果一个项目有属性而不是内部元素,你可以使用attribute starts-with selector 更简单地做到这一点,就像这样:

$(xml).find("item[key^=001]").each(function() { alert(this); });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2014-03-28
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多