【发布时间】:2016-01-11 15:25:38
【问题描述】:
我有以下代码
$('.radio-box').click(function() {
$(this).parents('.container-radio-box').find('.select').removeClass('state-active');
}
我正在尝试获取它,以便它会找到单击的 .radio-box 元素,查找它的包含元素 - .container-radio-box - 然后从其中的任何 .select 元素中删除活动状态。
我觉得我可以使用类似的东西
$('.radio-box').not(this).each(function() {
但是它有点复杂,因为有许多 .container-radio-box 元素,它们都需要单独处理。例如。只有被点击的.radio-box的包含div内的.select元素应该被脚本修改。
有谁知道我如何做到这一点?
编辑: 我已经像这样修改了我的脚本:
// radio-box
$('.radio-box').click(function() {
$(this).parents('.container-radio-box').find('.radio-box').removeClass('state-active');
var el = this;
$(this).parents('.container-radio-box')
.find('.select')
.filter(function(index){
return this != el;
})
.removeClass('state-active');
$(this).find('input').prop( "checked", true );
$(this).addClass('state-active');
});
并且还在这里上传了页面,这样你就可以看到它是如何工作的——http://www.mattpealing.co.uk/_concept/brdcr/form/
我正在尝试获取它,以便左列中的 .select 元素可以保持选中状态直到其他列之一被选中,在这种情况下,活动状态被移除。
但似乎单击左列也会从其中包含的.select 元素中删除活动状态
【问题讨论】:
-
看来 Burimi 的答案是完美的,除非我们遗漏了什么。如果它不起作用,请包含一些示例 HTML,这将有很大帮助!
标签: jquery jquery-selectors this