$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
小提琴:http://jsfiddle.net/XPVVp/更改回调函数
它不切换类由于某种原因,我不知道为什么它不工作。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
小提琴:http://jsfiddle.net/XPVVp/更改回调函数
它不切换类由于某种原因,我不知道为什么它不工作。
这是因为.subscription
select不是input
元素的孩子,这就是您的代码写入方式。相反,.subscription
元素的母,所以你需要使用正确的jQuery的操作来找到这样合适的父:
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).closest(".subscription").toggleClass('selected');
});
.closest()
将查找父链,直到发现该选择相匹配的第一个父。这里
+1 .'closest'解释 – 3zzy
因为input
位于.subscription
div元素内,反之亦然。因此,this
以下没有.subscription
元素...无法将toggleClass()
应用于。你想要达到什么目的?
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$([".subscription", this]).toggleClass('selected');
});
似乎是工作
我不知道你想与选择做真的是...... 您可以使用“这个”选择获取单选按钮,然后使用.parent()指令向上一级。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).parent().toggleClass('selected');
});
您还可以使用
$('.subscription').toggleClass('selected');
,如果你有说类的一个元素。
'input'是一个void元素:它*不能*包含任何其他元素。因此,使用它作为选择器的上下文将会和* can *找不到元素。你究竟在做什么? –