javascript - e4x 过滤器适用于多个 child ?

标签 javascript e4x

我的 XML 看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<projects>
    <project 
        id="1"
        thumb="media/images/thumb.jpg"
        >
        <categories>
            <id>1</id>
            <id>2</id>
        </categories>
        <director>Director name</director>
        <name><![CDATA[IPhone commercial]]></name>
        <url><![CDATA[http://www.iphone.com]]></url>
        <description><![CDATA[Description about the project]]></description>
        <thumb><![CDATA[/upload/images/thumb.jpg]]></thumb>
    </project>
</projects>

但是我不知道如何根据类别 ID 过滤项目?有人知道该怎么办吗? :)

类似于:

projects.project.(categories.(id == 3))

仅返回所有项目:(

最佳答案

这是一种不使用任何自定义函数的更好方法:

projects.project.(categories.id.contains(1))

contains采用单个值来检查 XML 或 XMLList 对象。

<小时/>

您可以使用额外的函数来进行处理:

// check if any of the <id> nodes matches any of the given values
function containing(nodes, values) {
    for each(var id in nodes) {
        if(values.indexOf(parseInt(id)) !== -1) return true;
    }
    return false;
}

projects.project.(containing(categories.id, [1])); // matches the first project
projects.project.(containing(categories.id, [46])); // matches nothing

关于javascript - e4x 过滤器适用于多个 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863952/

相关文章:

javascript - 如何在 e4x 中添加另一个同级元素?

javascript - .@ 是 Javascript 符号吗?

javascript - Jquery 脚本中的 Google 区域偏差

javascript - 在 setInterval 上重置计时器而不使用clearInterval

javascript - 为什么当数组包含 RegExp 时,数组的 toString() 方法返回空字符串?

javascript - 使用 JQuery 从具有 JSON 值的表中选择行

javascript - 创建搜索字段并动态更新 View

XML、 namespace 和 E4X

actionscript-3 - 柔性 4 : XML Literals with conditions

xml - 有没有办法获得游标所在节点的层次索引?