【问题标题】:Find elements with one element of array查找具有一个数组元素的元素
【发布时间】:2019-12-06 16:21:16
【问题描述】:

我有一个元素列表,每个元素都有一个数字 ID,我正在创建一个过滤器来对它们进行分组

其中一个过滤器必须采用在数组中指定 ID 的元素

如:

var orgsID = [4002,4037];

//Show if it has one of the IDs from the array
$('.event_item[data-id='+orgsID+']').addClass('show-item all'); 

然后一一检查LI是否有那个ID。如果有,请出示

这是过滤器:

<ul id="e-filters"> 
    <li class="active" id="all">All</li>
    <li id="49504">SU Sports Events</li>
    <li id="4002" class="sportsID">Sports Clubs Events</li>  <!-- Get elements from array -->
</ul>

这是列表:

<div id="e-list">   
    <div class="event_item" data-id="4219"></div>
    <div class="event_item" data-id="4002"></div>
    <div class="event_item" data-id="5146"></div>
    <div class="event_item" data-id="4037"></div>
</div>

【问题讨论】:

  • orgsID[number],循环播放

标签: javascript jquery arrays loops


【解决方案1】:

你可以这样做:

$('.event_item').filter(function() {
  return jQuery.inArray($(this).data("id"), orgsID) > -1;
}).addClass('show-item all');

演示

var orgsID = [4002, 4037];

$('.event_item').filter(function() {
  return jQuery.inArray($(this).data("id"), orgsID) > -1;
}).addClass('show-item all');
.show-item{ color: blue;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="e-list">
  <div class="event_item" data-id="4219">4219</div>
  <div class="event_item" data-id="4002">4002</div>
  <div class="event_item" data-id="5146">5146</div>
  <div class="event_item" data-id="4037">4037</div>
</div>

【讨论】:

    【解决方案2】:

    在你的数组上运行一个循环来检查这样的元素是否存在。如果存在,添加你的类。

    orgsID.forEach(id => {
        if($('.event_item[data-id='+id+']').length){
            $('.event_item[data-id='+orgsID+']').addClass('show-item all');
        }
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多