Html 使用复选框设置目标div

Html 使用复选框设置目标div,html,css,checkbox,Html,Css,Checkbox,我有一个隐藏/显示div的复选框。当我将复选框直接放在div上方时,它会起作用。当我将复选框放在页面的其他位置时(为了更好的可用性),它不会起作用。有没有一种方法可以针对某个div,使复选框在页面上的任何地方都能工作 以下是HTML代码: <input type="checkbox" id="toggle-result" checked="checked"> </input> 使用CSS,您可以选择子元素和相邻元素,因此如果将div放在复选框的正后方,您尝试执行的操作

我有一个隐藏/显示div的复选框。当我将复选框直接放在div上方时,它会起作用。当我将复选框放在页面的其他位置时(为了更好的可用性),它不会起作用。有没有一种方法可以针对某个div,使复选框在页面上的任何地方都能工作

以下是HTML代码:

<input type="checkbox" id="toggle-result" checked="checked">  </input>

使用CSS,您可以选择子元素和相邻元素,因此如果将
div
放在复选框的正后方,您尝试执行的操作将有效,但如果您希望在
div
位于其他位置(复选框上方)时使其有效,则需要使用JavaScript,如果它位于,可以使用
+
选择相邻图元或嵌套相邻图元

说明:
input[type=checkbox]:选中+a+.blah.target
Over 在这里,我们选择处于选中状态的复选框,然后 通过选择作为锚定标记的相邻元素来链接该元素, 然后我们选择另一个相邻的元素,它与
a
标签是带有class
.blah的
div
,然后我们选择带有class
的嵌套子元素。target

使用jQuery执行(不管目标元素在哪里)


选中复选框时,应显示此内容
$(文档).ready(函数(){
$('#checkme').change(函数(){
$(“#在检查时显示”。切换();
});
});

使用CSS,您可以选择子元素和相邻元素,因此,如果将
div
放在复选框的正后方,您尝试执行的操作将起作用,但如果您想在
div
位于其他位置(复选框上方)时使其起作用,则需要使用JavaScript,如果它位于,可以使用
+
选择相邻图元或嵌套相邻图元

说明:
input[type=checkbox]:选中+a+.blah.target
Over 在这里,我们选择处于选中状态的复选框,然后 通过选择作为锚定标记的相邻元素来链接该元素, 然后我们选择另一个相邻的元素,它与
a
标签是带有class
.blah的
div
,然后我们选择带有class
的嵌套子元素。target

使用jQuery执行(不管目标元素在哪里)


选中复选框时,应显示此内容
$(文档).ready(函数(){
$('#checkme').change(函数(){
$(“#在检查时显示”。切换();
});
});
将选择前面有选中的输入的每个
div
元素。它可能中断的原因是因为输入不在
div
之前(如您在问题中所述)


将选择前面有选中的输入的每个
div
元素。它可能中断的原因是因为输入不在
div前面(如您在问题中所述)

使用选择器中的元素ID:

<input type="checkbox" id="toggle-result" checked="checked"/>

<div id="myDiv">showme</div>

<style>
    #toggle-result:checked ~ #myDiv {
        display: none;
    }
</style>

秀给我看
#切换结果:选中~#myDiv{
显示:无;
}

使用选择器中的元素ID:

<input type="checkbox" id="toggle-result" checked="checked"/>

<div id="myDiv">showme</div>

<style>
    #toggle-result:checked ~ #myDiv {
        display: none;
    }
</style>

秀给我看
#切换结果:选中~#myDiv{
显示:无;
}

可能还有其他代码破坏了页面的功能。您可能需要发布更多(页面上的内容)代码。我以前也遇到过这个问题,看。将div移动到其他位置会破坏您的选择器。可能还有其他代码会破坏页面的功能。您可能需要发布更多(页面上的内容)代码。我以前也遇到过这个问题,看。将div移动到其他位置会破坏您的选择器。我认为这不太正确。它将选择与选中输入共享父项的每个
div
。@Chris-
E~F前面有一个E元素的F元素
,我认为这不太正确。它将选择与选中输入共享父项的每个
div
。@Chris-
E~F前面有一个E元素的F元素
input[type=checkbox]:checked + a + .blah .target {
    display: block;
}

.target {
    display: none;
}

<input type="checkbox" />
<a href="#">Dummy Link</a>

<div class="blah">
    <div class="target">Complicated Selector, Isn't It?</div>
</div>
<input type="checkbox" id="checkme" />
<a href="#">Dummy Link</a>
<div id="show_on_check" style="display:none">
    This content should appear when the checkbox is checked
</div>

$(document).ready(function() {
    $('#checkme').change(function() {
        $('#show_on_check').toggle();
    });
});
input[type=checkbox]:checked ~ div {
   display: none;
}
<input type="checkbox" id="toggle-result" checked="checked"/>

<div id="myDiv">showme</div>

<style>
    #toggle-result:checked ~ #myDiv {
        display: none;
    }
</style>