【发布时间】:2012-05-29 17:52:04
【问题描述】:
给定以下 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']")
【问题讨论】:
标签: javascript jquery class selector