當檢查單選輸入時,如何將JS中的附加類添加到div或table中?當我檢查無線電輸入時,我想將table-selected類添加到div class="table-item"中。$(".table-item input").change(function() { var div = $(this).closest('.table-item'); $(this).is(":checked") ? div.addClass("table-selected") : div.removeClass("table-selected");});#test .table-item { border: solid 1px #666; height: 25px; background-color: #CCC}#test .table-selected { border: 1 px solid #F00; background-color: #00F}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div id="test"> <div class="table-item"> <div><label for="check1"><input type='radio' name='rad' value='1'>1</label></div> </div> <div class="table-item"> <div><label for="check2"><input type='radio' name='rad' value='2'>2</label></div> </div> <div class="table-item"> <div><label for="check3"><input type='radio' name='rad' value='3'>3</label></div> </div></div>但這工作有些錯誤,添加類,但在未選中時不會刪除它
2 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
在添加到當前類之前,您必須從其他類中刪除類。觸發器僅針對該元素觸發,因此檢查將針對該元素而不是其他元素運行。 更新鏈接: https: //jsfiddle.net/m637ndrx/2/
$(".table-item input").change(function() {
var div = $(this).closest('.table-item');
$('.table-item').removeClass("table-selected")
$(this).is(":checked") ? div.addClass("table-selected") : div.removeClass("table-selected");
});

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
您只是從所選中 刪除該類div。該三元條件的部分else永遠不會被滿足,因為它div代表您選擇的按鈕。
您需要從所有 div 中刪除該類。
$(".table-item").removeClass('table-selected');
var div = $(this).closest('.table-item');
if ($(this).is(":checked")) {
div.addClass("table-selected");
}
檢查這里: https: //jsfiddle.net/g5o2w47v/
- 2 回答
- 0 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消