$('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 *找不到元素。你究竟在做什麼? –