我试图找到一个函数,选择整个页面上点击的所有元素匹配。无论他们在哪个容器中。下一个只给兄弟姐妹。我需要在第二个单击时,每个DIV与类族除了具有文本First和Second的那些之后被分配给类。
<!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>
答案 0 :(得分:1)
只需使用$.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
来查看它是否不可用。