$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
小提琴:http://jsfiddle.net/XPVVp/
由于某些原因,它没有切换课程,我不确定它为什么不起作用。
答案 0 :(得分:1)
那是因为.subscription
select不是input
元素的子元素,而是代码的编写方式。相反,.subscription
元素是父元素,因此您需要使用正确的jQuery操作来找到正确的父元素,如下所示:
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).closest(".subscription").toggleClass('selected');
});
.closest()
将查找父链,直到它找到与选择器匹配的第一个父级。
答案 1 :(得分:0)
因为input
位于.subscription
div元素内,反之亦然。因此,.subscription
下面没有this
元素......无法应用toggleClass()
。你究竟想要实现什么目标?
答案 2 :(得分:0)
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$([".subscription", this]).toggleClass('selected');
});
似乎正在运作
答案 3 :(得分:0)
我真的不知道你想用那个选择器做什么...... 您可以使用“this”选择器来获取单选按钮,然后使用.parent()指令上升一级。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).parent().toggleClass('selected');
});
您也可以使用
$('.subscription').toggleClass('selected');
如果你只有一个所述类的元素。