我正在尝试创建两个子 div,单击它们中的任何一个都会为“toggler”类子 div 提供“突出显示”类。我正在创建一个包含“toggler”类的“toggler”选择器变量。然而,给定以下代码,两个子 div 都被赋予了“highlight”类,而不是选择器变量设置为持有的“toggler”类。
HTML:
<div class="parent_div">
<div class="first_child">
First Child Text
</div>
<div class="toggler">
Toggler
</div>
</div>
CSS:
.parent_div > div {
display: inline-block;
float: left;
clear: both;
}
.parent_div > div:hover {
cursor: pointer;
}
.highlight {
background-color: yellow;
}
jQuery:
$(document).ready(function() {
var toggler = $('.toggler');
var eitherChild = $('.first_child, .toggler');
eitherChild.click(function() {
var thisParent = $(this).parent();
thisParent.children(toggler).toggleClass('highlight');
});
});
显示结果的小提琴:http: //jsfiddle.net/bronzegate/5yTBP/
将 jQuery 更改为以下内容会产生所需的结果:
$(document).ready(function() {
var eitherChild = $('.first_child, .toggler');
eitherChild.click(function() {
var thisParent = $(this).parent();
thisParent.children('.toggler').toggleClass('highlight');
});
});
显示结果的小提琴:http: //jsfiddle.net/bronzegate/ZS8P5/
为什么前一种情况下的 Children 方法会同时选择两个孩子,而不是只选择“toggler”选择器变量中定义的孩子?