jQuery检查最后三个数据属性是否相等

jQuery check if the last three data attributes are equal to

本文关键字:数据属性 三个 是否 检查 最后 jQuery      更新时间:2023-09-26

假设这是HTML:

<div id="chat">
  <div class="msg" data-user="7">bla</div> 
  <div class="msg" data-user="3">bla</div> 
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div> 
</div>

如何检查最后三个user attributes是否为7

您可以将nth-last-child选择器与属性选择器组合使用:

var is = $('.msg:nth-last-child(-n+3)[data-user=7]').length === 3;
if (is) {
    console.log('last 3 messages has data-user 7');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chat">
  <div class="msg" data-user="7">bla</div> 
  <div class="msg" data-user="3">bla</div> 
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div> 
</div>

尝试使用.slice(), .get(), Array.prototype.every()

var res = $("#chat .msg").slice(-3).get().every(function(val) {
  return val.dataset.user === "7"
});
console.log(res)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="chat">
  <div class="msg" data-user="7">bla</div> 
  <div class="msg" data-user="3">bla</div> 
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div>
  <div class="msg" data-user="7">bla</div> 
</div>