javascript - 查找特定值的第一个实例并添加 ID,重复

标签 javascript jquery css filtering

给定一系列具有已知值的 div,是否可以创建一个过滤器或数组来查找值的第一个实例并在多个元素上添加一个 ID?这是基本结构:

<div class="boxes">
  <div class="box"><time>2017</time></div>
  <div class="box"><time>2016</time></div>
  <div class="box"><time>2015</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2013</time></div> 
</div>

这是我用来查找其中一个值的片段:

var elems = $('.box').filter(function(){
 return this.textContent.trim() === "2014"
}).first().attr('id', 'one');

我不确定寻找其他实例的最佳方式?

例如,感觉有比简单地重复论点更好的方法。诚然,我是新手,不知道这种函数叫什么。

var elems = $('.box').filter(function(){
 return this.textContent.trim() === "2014"
}).first().attr('id', 'one');

var elems = $('.box').filter(function(){
 return this.textContent.trim() === "2017"
}).first().attr('id', 'one');

如果不必添加特定值,即 2017 年 ( <time id="one">2017</time> )、2016 年 ( <time id="two">2016</time> ) 会更好,但我什至不确定这是否现实。

工作 fiddle :https://jsfiddle.net/heykenneth/gn4gmvt0/1/ .

最佳答案

您可以通过包装您已经编写的代码的参数来做到这一点:

markFirstYear("2014", "one");
markFirstYear("2015", "two");
markFirstYear("2016", "three");
markFirstYear("2017", "four");
// ... etc

function markFirstYear(year, id) {
  var elems = $('.box').filter(function(){
   return this.textContent.trim() === year
  }).first().attr('id', id);
}
#one {color:red;}
#two {color:blue;}
#three {color:green;}
#four {color:purple;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="boxes">
  <div class="box"><time>2017</time></div>
  <div class="box"><time>2016</time></div>
  <div class="box"><time>2015</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2014</time></div>
  <div class="box"><time>2013</time></div> 
</div>

关于javascript - 查找特定值的第一个实例并添加 ID,重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994528/

相关文章:

jsf 中的 ajax 更新后 JQuery 不工作

html - 如何将 CSS 应用于特定表的 td?

javascript - 按属性(property)的独特值分组

javascript - 选择元素并使其成为第一个元素

javascript - Durandal 登录页面显示

html - 使用位置 : fixed; 时导航栏不在原地

javascript - 如何使用 JQuery 执行嵌套的 for-each 循环以获取特定的 li 元素?

javascript - 指令中未收到广播

javascript - ScrollTop()函数,滚动时间

javascript - 如何通过单击按钮来控制 Accordion 事件