Tôi đã đọc một vài giải pháp ở đây, nhưng vấn đề của tôi khác nhau ở nơi những người đó sẽ không hoạt động. Về cơ bản, nếu nút radio được chọn, hãy thêm một lớp css vào div cha. Nếu đài không được chọn, hãy loại bỏ lớp css. Âm thanh đơn giản?jQuery thêm/xóa lớp css trên radio đã chọn
Tôi có nhiều nhóm nút radio, vì vậy nói cách khác, sẽ có nhiều nút radio được chọn cùng một lúc. Mỗi nhóm nút radio cũng nằm trên các phần khác nhau của trang được phân cách bằng các html khác.
Dưới đây là những gì tôi đã đưa ra:
$(document).ready(function() {
$('input').click(function() {
if ($('input:not(:checked)')) {
$('div').removeClass('style1');
}
if ($('input').is(':checked')) {
$(this).parent().addClass('style1');
}
});
});
Tôi nghĩ rằng tôi đang trên con đường đúng với đầu vào: không (: kiểm tra), nhưng trên dòng tiếp theo nó loại bỏ style1 từ tất cả các phần tử div thay vì kiểm tra xem các nút radio radio con khác có được chọn hay không.
Tôi đoán điều tôi hỏi là làm cách nào để viết kịch bản khi nhấn nút radio, thêm lớp css vào phụ huynh và sau đó tìm tất cả thẻ div trên trang có con đầu vào. Nếu đầu vào con divs không được chọn, hãy loại bỏ lớp css. Vì vậy, nếu một div có một yếu tố đầu vào con và nó được kiểm tra, không loại bỏ các lớp css từ div đầu vào.
Tôi hy vọng điều đó có ý nghĩa.
một năm sau ..nó vẫn giúp ai đó – andrewk
Hoạt động tốt, nhưng mã dường như có một nhân vật bất hợp pháp trong nó mặc dù. Nó dễ dàng loại bỏ với một fiddle (đánh dấu màu đỏ): https://jsfiddle.net/y5hkookq/ – cptstarling
Ngoài ra còn có một thực tế là các lớp học bị mất khi trang đang được làm mới, eventhough các tùy chọn vẫn được kiểm tra. – cptstarling