在下面的脚本中,我试图用类“cb-checkURL”评估所有复选框项目,如果选中,我想设置最近的“.wl-options”div来显示:block via jQuery show()
然而,我错过了一些东西,但是.each没有做好这个工作。有什么想法吗?
jQuery(document).ready(function(){
jQuery.each( ".cb-checkURL", function() {
if(jQuery(this).attr("checked")){
jQuery(this).parent().next(".wl-options").show();
}
else
{
jQuery(this).parent().next(".wl-options").hide();
}
});
jQuery(".cb-checkURL").click(
function(){
jQuery(this).parent().next(".wl-options").toggle();
});
})';
HTML SOURCE
<label class="wl-active">
<input class="cb-checkURL" type="checkbox" name="wl[item-2][location][is_url]" checked="checked"> URL
</label>
<div class="wl-options" style="clear:both;max-width:400px;display:none">
<div class="cb-urls">
<label title="Enter one url slug per line" for="wl[item-2][url][urls]"></label>
<textarea name="wl[item-2][url][urls]" id="wl[item-2][url][urls]"></textarea>
</div>
</div>
答案 0 :(得分:2)
可能会简单得多:
jQuery(document).ready(function(){
var handler = function() {
jQuery(this).parent().next(".wl-options").toggle(jQuery(this).is(':checked'));
};
jQuery(".cb-checkURL").click(handler).each(handler);
});
JSFiddle:http://jsfiddle.net/jA4wS/
答案 1 :(得分:0)
您没有在DOM中选择任何元素。 “$ .each()函数与$(selector).each()不同,后者用于通过jQuery对象进行独占迭代。”,http://api.jquery.com/jQuery.each/ 试试:
jQuery(".cb-checkURL").each(function( index ) {})
答案 2 :(得分:0)
jQuery.each( ".cb-checkURL", function() {
你想要
$(".cb-checkURL").each(function(index) {
// do something on each .cb-checkURL
});