javascript – 如何在逻辑和逻辑与jQuery属性选择器中组合?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在逻辑和逻辑与jQuery属性选择器中组合?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给出以下 XML
<users>
    <user state="CA" sex="m">Max</user>
    <user state="AZ" sex="f">Jen</user>
    <user state="OR" sex="f">Kim</user>
    <user state="NV" sex="m">Bob</user>
    <user state="CA" sex="m">Jon</user>
    <user state="AZ" sex="m">Jim</user>
    <user state="OR" sex="f">Joy</user>
    <user state="NV" sex="f">Amy</user>
</users>

使用jQuery,是否有一种方法来选择男性的用户,来自CA或NV,但不使用过滤功能?要清楚,我知道

$(xml).find("user[sex='m']")

同时选择男性用户

$(xml).find("user[state='CA'],[state='NV']")

从CA或NV中选择所有用户.但是我不能在一个选择器中将它们与逻辑AND组合.

但是,使用过滤器功能,以下工作如下:

$(xml).find("user").filter(function() {
    return $(this).attr('sex') == 'm' && ($(this).attr('state') == 'CA' || $(this).attr('state') == 'NV')
}).each(function() {
    alert($(this).text());
});

谢谢!

@H_301_21@解决方法
尝试这个:
$(xml).find("user[sex='m'][state='CA'],user[sex='m'][state='NV']")

基本上,您将一个简单的选择器(这将是您的逻辑AND)将性别和状态属性链接在一起,并且每个状态重复一次(这将是您的逻辑OR).

测试:

$(xml).find("user[sex='m'][state='CA'],user[sex='m'][state='NV']")
      .each(function() {
          alert($(this).text() + " - " + $(this).attr('state'));
      });

输出

Max - CA
Bob - NV
Jon - CA

猜你在找的jQuery相关文章