How do I combine logical OR with logical AND within a jQuery attribute selector?(如何在 jQuery 属性选择器中将逻辑 OR 与逻辑 AND 结合起来?)
问题描述
给定以下 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,但不使用过滤功能?说清楚,我知道
Using jQuery, is there a way to select users who are male and are either from CA or NV, but without using the filter function? To be clear, I know that
$(xml).find("user[sex='m']")
只选择男性用户,而
$(xml).find("user[state='CA'],[state='NV']")
从 CA 或 NV 中选择所有用户.但我无法在单个选择器中将它们与逻辑 AND 结合起来.
selects all users from either CA or NV. But I am not able to combine both of them with a logical AND within a single selector.
但是,使用过滤器功能,以下工作:
Using the filter function, however, the following works:
$(xml).find("user").filter(function() {
return $(this).attr('sex') == 'm' && ($(this).attr('state') == 'CA' || $(this).attr('state') == 'NV')
}).each(function() {
alert($(this).text());
});
谢谢!
推荐答案
试试这个:
$(xml).find("user[sex='m'][state='CA'], user[sex='m'][state='NV']")
基本上,您将 sex
和 state
属性链接在一个简单的选择器中(这将是您的逻辑与),并在每个状态重复一次(这将是你的逻辑或).
Basically you chain the sex
and state
attributes together in a single simple selector (this would be your logical AND), and repeat them once per state (and this would be your logical 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 属性选择器中将逻辑 OR 与逻辑 AND 结合起来?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 jQuery 属性选择器中将逻辑 OR 与逻辑 AND 结合起来?
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Fetch API 如何获取响应体? 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01