Jquery 为什么不勾选和取消勾选复选框?
我有以下查询代码:Jquery 为什么不勾选和取消勾选复选框?,jquery,Jquery,我有以下查询代码: function selectTag(id) { var input = 'input#tag_' + id; var span = '#span_' + id; if ($(input).is(':checked') && $(span).hasClass('selected')) { $(span).removeClass('selected'); $(input).prop('checked',
function selectTag(id) {
var input = 'input#tag_' + id;
var span = '#span_' + id;
if ($(input).is(':checked') && $(span).hasClass('selected')) {
$(span).removeClass('selected');
$(input).prop('checked', false);
}
else {
$(span).addClass('selected');
$(input).prop('checked', true);
}
}
条件的最后一部分没有执行。未选中或取消选中复选框
这是html
<?php foreach ($this->tags as $uri=>$tag){?>
<input type="checkbox" name="tags[]" style="display: none;" value="<?php echo $uri;?>" id="tag_<?php echo $uri;?>" <?php echo isset($args['tags']) && in_array($uri, $args['tags'])?'checked="checked"':'';?> />
<span onclick="selectTag(<?php echo $uri;?>)" id="span_<?php echo $uri;?>" for="create_<?php echo $uri;?>" class="tag <?php echo isset($args['tags']) && in_array($uri, $args['tags'])?'selected':'';?>"><?php echo str_replace(' ', ' ', $tag);?></span>
<?php }?>
您可以这样做:
- 使用jQuery时,不需要使用
onClick
属性。你可以通过事件来代替。因此,不需要将元素id传递给函数$(此)
保存元素对象,您可以通过attr('id')
访问id属性
jQuery
$('span').click(function(){
var id = $(this).attr('id');
var input = $('input#tag_' + id);
var span = $(this);
if (input.is(':checked') && span.hasClass('selected')) {
span.removeClass('selected');
input.prop('checked', false);
}
else {
span.addClass('selected');
input.prop('checked', true);
}
});
$('span').click(function(){
var span = $(this);
var input = $(this).prev();
if (input.is(':checked') && span.hasClass('selected')) {
span.removeClass('selected');
input.prop('checked', false);
} else {
span.addClass('selected');
input.prop('checked', true);
}
});
html
<input type="checkbox" name="tags[]" value="" id="tag_1" />
<span id="1" for="" class="tag selected">siamak 1</span>
<input type="checkbox" name="tags[]" value="" id="tag_2" />
<span id="2" for="" class="tag selected">siamak 12</span>
<input type="checkbox" name="tags[]" value="" id="tag_3" />
<span id="3" for="" class="tag selected">siamak 3</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 1</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 2</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 3</span>
html
<input type="checkbox" name="tags[]" value="" id="tag_1" />
<span id="1" for="" class="tag selected">siamak 1</span>
<input type="checkbox" name="tags[]" value="" id="tag_2" />
<span id="2" for="" class="tag selected">siamak 12</span>
<input type="checkbox" name="tags[]" value="" id="tag_3" />
<span id="3" for="" class="tag selected">siamak 3</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 1</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 2</span>
<input type="checkbox" name="tags[]" value="" />
<span for="" class="tag selected">siamak 3</span>
siamak 1
siamak 2
siamak 3
请共享您的HTML。您使用的是正确版本的jQuery(1.6+)@AndrewArnold我使用的是jQuery 1.10请共享浏览器呈现的HTML。谢谢。你试过在JS中设置断点吗?这个函数真的被调用过吗?