3

我正在尝试使用 jquery 切换 div - 基本上想要隐藏表单的一部分,并且仅在用户选择特定复选框时显示它。

现在,我在下面有这段代码,它工作得很好,但无法弄清楚编辑它的内容和位置,以便与复选框而不是链接一起使用。另外,我宁愿不使用 ID。

这是示例代码:

.answer { display:none; }

$("a.question").click(function(){
 $(this).next(".answer").toggle();
}); 

<a href="#" class="question">Queston 1</a>
<div class="answer">Answer 1</div>

<a href="#" class="question">Queston 2</a>
<div class="answer">Answer 2</div>

任何帮助都将不胜感激,因为这让我发疯了!

4

7 回答 7

4
<label>Question 1:</label><input type="checkbox" class="question"/>
<div class="answer">Answer 1</div>

$("input[type=checkbox].question").change(function(){
    $(this).next(".answer").toggle(this.checked);
});
于 2012-10-09T19:55:07.543 回答
2

怎么样:

<input class="check" type="checkbox" >
<div class="answer">Answer 1</div>

<input class="check" type="checkbox" >
<div class="answer">Answer 2</div>​
<style type="text/css">
.answer { display:none; }
.check:checked+.answer{
display:block;
}
​
</style>

并且不需要js。演示: http: //jsfiddle.net/V9d2W/
浏览器支持 '+' css 选择器 - http://www.quirksmode.org/css/contents.html

于 2012-10-09T20:01:16.550 回答
0

ASP.NET:

 <asp:CheckBox ID="addinfoChk" runat="server" onclick="javascript:OpenPopup(this,'addinfopanel');" />
 <div id="addinfopanel" style="display: none"></div>

<asp:CheckBox ID="addChk" runat="server" onclick="javascript:OpenPopup(this,'addpanel');" />
 <div id="addpanel" style="display: none"></div>

JavaScript:

<script type="text/javascript">
    function OpenPopup(obj, divid) {
        if (obj.checked == true)
            document.getElementById(divid).style.display = 'block';
        else {
            document.getElementById(divid).style.display = 'none';
        }
    }

</script>
于 2013-10-30T17:33:22.863 回答
0

尝试这个

.answer { display:none; }​

<input type="checkbox" class="question" /> : Queston 1
<div class="answer">Answer 1</div>

<input type="checkbox" class="question" /> : Queston 2
<div class="answer">Answer 2</div>​

    $(".question").click(function() {
        if ($(this).is(':checked')) {
            $(this).next(".answer").show();
        }
        else{
            $(this).next(".answer").hide();
        }
    });​

检查小提琴

于 2012-10-09T19:54:20.043 回答
0

修改代码:jsfiddle

html:

Queston 1 <input type=checkbox />
<div class="answer">Answer 1</div>

 Queston 2<input type=checkbox />
<div class="answer">Answer 2</div>​

JS:

$("input[type='checkbox']").click(function(){
    if(this.checked){
            $(this).next(".answer").show();
    }
    else{
        $(this).next(".answer").hide();
    }
}); ​
于 2012-10-09T19:57:09.667 回答
0

http://jsfiddle.net/h87K2/ :工作小提琴

代码:

Queston 1<input type="checkbox" class="question" />
<div class="answer">Answer 1</div>

Queston 2<input type="checkbox" class="question" />
<div class="answer">Answer 2</div>​


$("input.question").click(function(){
 $(this).next(".answer").toggle();
}); 
​
于 2012-10-09T19:55:48.680 回答
0

CSS

.answer { display:none; }​

HTML

<input type="checkbox">Question 1</input>
<div class="answer">Answer 1</div>
<br/>
<input type="checkbox">Question 2</input>
<div class="answer">Answer 2</div>​

jQuery :

$("input[type='checkbox']").on("change", function(){
 $(this).next(".answer").toggle();
}); ​

例子

于 2012-10-09T19:56:53.253 回答