jQuery addClass如果单选按钮检查
任何人都可以帮我解决这个问题吗?jQuery addClass如果单选按钮检查
$(document).ready(function() {
if(
$("input.check").is(":checked")){
$(this).parent().addClass("question-box-active");
}
});
我想添加一个类(问题框活动)的.check(一个单选按钮)的父母,只有当它被检查。如果我使用警报测试,它工作正常,但我无法设法添加该类。
谢谢大家的帮助。
更新:这是表单的HTML。我从48中只复制了3个div。正如你可能猜测的那样,如果在加载页面时已经选中了单选按钮,我试图向问题框添加一个类。到目前为止没有运气。
<div class="question-box">
<input class="check" type="checkbox" name="question-1" value="1" <?php if(isset($_POST['question-1'])) echo "checked"; ?> />
<span class="question">1. Save a rainforest or grow organic vegetables</span>
</div>
<div class="question-box alt">
<input class="check" type="checkbox" name="question-2" value="1" <?php if(isset($_POST['question-2'])) echo "checked"; ?> />
<span class="question">2. Solve complicated math problems</span>
</div>
<div class="question-box">
<input class="check" type="checkbox" name="question-3" value="1" <?php if(isset($_POST['question-3'])) echo "checked"; ?> />
<span class="question">3. Act in a movie, play, or television show</span>
</div>
尝试像
$('input.check').is(':checked').each(function() {
$(this).parent().addClass('question-box-active');
});
我觉得$(this)
是不是指的单选按钮,你的情况
你可以绑定的单选按钮的点击事件,并决定如何从那里做...
$(document).ready(function(){
$("input.check").click(function(){
if($(this).is(":checked")){
$(this).parent().addClass("question-box-active");
}
});
});
您正在使用的this
位于ready
处理函数回调的函数上下文中,因此它不像您期望的那样指向input.check
。
尝试这样代替:
$(document).ready(function() {
var foo = $('input.check');
if (foo.is(':checked')) {
foo.parent().addClass('question-box-active');
}
});
这是假设你的代码的逻辑是正确的。不过,我认为你正在尝试做类似于Doug在另一个答案中提供的内容。发布一些HTML可能有助于澄清。
感谢理查德的帮助。我添加了HTML到我原来的问题希望这可以帮助。我喜欢jQuery,但我还不是很擅长。我尝试了你提供的代码,但是班级被添加到所有的父母,甚至是那些单选按钮未被选中的人。我仍在玩弄它,看看我能不能挖出一些东西,但请如果你有任何其他想法,让我知道。这让我疯狂。 – Julesfrog
这将工作。
$(document).ready(function() {
var foo = $('input.check:checked');
if (foo.is(':checked')) {
foo.parent().addClass('question-box-active');
}
});
谢谢!这实际上找到了选中的单选按钮,而不是检查是否有在页面上检查的输入。这使我可以在选中的单选按钮上应用一个班级。 – JDavies
我觉得这段代码更令人满意:http://stackoverflow.com/questions/3376412/jquery-add-remove-css-class-on-selected-radio#answer-3376557 – cptstarling
感谢您的回答卡夫曼。该表单已设置,因此页面刷新后会在单击提交后显示表单的结果。当单选按钮被用户主动检查时,我已经有了一个点击功能来添加问题框活动类。但是当页面刷新结果时,即使按钮被选中,类也会消失。 – Julesfrog