给定以下 HTML:
<fieldset>
<legend>
<input type="checkbox" name="amazon_activated" />
</legend>
<table>
<tr>
<td>
Amazon Data
</td>
</tr>
</table>
</fieldset>
下一个代码允许隐藏/显示与复选框相关的数据容器表:
$("input[name='amazon_activated']").click(function(){
$(this).parent("legend").next("table").toggle( $(this).is(":checked") );
});
下一个代码应该hide/show
在页面加载后初始化状态:
if ( ! $("input[name='amazon_activated']").is(":checked")){
$(this).parent("legend").next("table").hide();
}
好吧,它失败了。
我已经知道为什么了:this
指的是page
元素,而不是checkbox
元素。
所以我想知道:
最好的策略是立即选择一个id/class
:
$("#id")
对于重要的元素,以便通过 jquery 进行控制,而不是基于表单的选择器?:
$("input[name='amazon_activated']")