我试图找到一种功能,在整个页面上单击后选择所有匹配的元素。无论它们位于哪个容器中。nextAll仅提供同级。我需要单击“秒”时,除具有“ First”和“ Second”的文本外,每个具有类族的DIV都将分配给该类。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>nextAll demo</title>
  <style>
  div {
    width: 80px;
    height: 80px;
    background: #abc;
    border: 2px solid black;
    margin: 10px;
    float: left;
  }
  div.after {
    border-color: red;
  }
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<div class="family" >First</div>
<div class="family" >Second</div>
<div>sibling<div class="family">child</div></div>
<div class="family">sibling</div>
<div class="family">sibling</div>
<script>

$('div.family').click(function(){
    $(this).nextAll('.family').addClass( "after" );
});

</script>

</body>
</html>

最佳答案

只需使用$.fn.filter

var txts = ["First", "Second"];
$('div.family').click(function(){
    $('.family').filter(function(){
      return txts.indexOf($(this).text().trim()) == -1
    }).addClass( "after" );
});


我们要做的是利用一个数组,该数组包含不应包含在div中的文本,然后使用Array.indexOf来查看它是否不可用。

关于jquery - NextAll整个页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28151924/

10-10 21:43