【问题标题】:How do I select elements on multiple attribute values如何在多个属性值上选择元素
【发布时间】:2011-12-24 02:37:50
【问题描述】:

使用 jQuery,很容易选择具有给定属性值的元素。

例如:

var elements = $('div[attr1="value1"]');

但是如何选择多个属性(例如,attr1 = value1 attr2 = value2)?

【问题讨论】:

标签: jquery


【解决方案1】:

由于 jquery 使用 CSS 选择器,按照 CSS 规范的定义,具有多个条件的选择器将如下所示:

$('div[attr1="value1"][attr2="value2"]')

请参阅 CSS 规范以获取更多参考:http://www.w3.org/TR/CSS2/selector.html#matching-attrs

【讨论】:

  • @JitendraPancholi:你到底是从哪里得到这个想法的?我引用了支持我的陈述的文档中的确切位置。如果您要反驳我所说的话(并投票反对我),我至少希望您能礼貌地提及一些官方的东西。
  • 我在我的项目中尝试了你的代码,发现它不起作用。我实际上是这样做的,没有任何其他参考。
  • $('div[attr1="value1"]').filter('div[attr2="value2"]');这段代码就像魅力一样。
  • @JitendraPancholi:所以在 7 年内,31,000 次观看和 59 次投票,你是第一个说这个答案是错误的人。你能解释一下吗?
  • jQuery 文档清楚地表明“匹配与所有指定属性过滤器匹配的元素”,所以是的,它是 AND 而不是 OR,这是正确的答案。 api.jquery.com/multiple-attribute-selector
【解决方案2】:

例如,您可以像这样链接和过滤

var elements = $('div[attr1="value1"]').filter('div[attr2="value2"]');

【讨论】:

    【解决方案3】:

    发现这个解决方案非常简单。

    $('[attr1="home"][attr2="settings"]')
    

    【讨论】:

    • @DanielLiuzzi 以上对于执行 AND 是正确的
    • @Geek 我添加评论时不正确。看到答案已经被编辑和修复,我将删除评论以避免任何混淆。
    【解决方案4】:

    要选择多个属性,请参见下面的代码。

    此代码将查找所有具有id 属性且名称属性以“man”结尾的输入并设置值。

    $( "input[id][name$='man']" ).val( "this input has id and name ends with 'man'" );
    

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多