【问题标题】:Select element with particular data attributes with jQuery使用 jQuery 选择具有特定数据属性的元素
【发布时间】:2019-08-23 05:54:06
【问题描述】:

请问如何使用 jQuery 选择具有特定数据属性和特殊类的元素?

例如,我想选择这些元素:

<div data-roomid="55" data-status="NoData"></div>
<div data-roomid="55" data-status="Open"></div>
<div data-roomid="55" data-status="Close"></div>

但不是这个:

<div data-roomid="55" data-status="Book"></div>

我的尝试如下:

roomid = 55;
$('[data-roomid="'+ roomid +'"]').each(function(e) {

});

谢谢。

【问题讨论】:

  • 什么是special classclass这个词在html中有特殊的含义,所以你想要的有点混乱。
  • 您要选择的一个 div 与您不选择的一个相同。
  • @kukkuz:很好的收获。已更新。
  • @j08691,正确。改变了。

标签: javascript jquery html jquery-selectors


【解决方案1】:

您可以使用:not 选择器 - 请参阅下面的演示:

var roomid = 55, status = 'Book';
$('[data-roomid="' + roomid + '"]:not([data-status=' + status + '])').each(function() {
  $(this).css({
    color: 'blue'
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-roomid="55" data-status="NoData">NoData</div>
<div data-roomid="55" data-status="Open">Open</div>
<div data-roomid="55" data-status="Close">Close</div>
<div data-roomid="55" data-status="Book">Book</div>

【讨论】:

    【解决方案2】:

    这是你要找的吗?

    $('div:not([data-status=Book])[data-roomid='+ roomid +']')
    

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2011-05-28
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多