我的代码是:
$(function(){
$('input:checkbox').on('change','span',function(){
var input= $(this).find('span');
if($(this).is(':checked')){
//alert($(this).name);
$(input).css('textDecoration','line-through');
}else{
$(input).css('textDecoration','none');
}
})
})
这是我的HTML
<div><input type="checkbox" id="a1"></input><span>This is ok</span></div><br/>
<div><input type="checkbox" id="a2" ></input><span>This is yes</span></div>
但它不起作用。我想我没有得到正确的输入。 提前谢谢。
答案 0 :(得分:6)
您需要定位更改处理程序的复选框元素,然后跨度是下一个兄弟
$(function () {
$('input:checkbox').on('change', function () {
var input = $(this).next('span');
if (this.checked) {
$(input).css('textDecoration', 'line-through');
} else {
$(input).css('textDecoration', 'none');
}
})
})
演示:Fiddle
如果您想要事件委托
$(function () {
$(document).on('change', 'input:checkbox', function () {
var input = $(this).next('span');
if (this.checked) {
$(input).css('textDecoration', 'line-through');
} else {
$(input).css('textDecoration', 'none');
}
})
})
演示:Fiddle
答案 1 :(得分:1)
尝试
$(document).on('change','input:checkbox',function() {
var input= $(this).closest('span');
....
}
答案 2 :(得分:1)
试试这个:
$(function(){
$('input:checkbox').on('change',function(){
if($(this).is(':checked')){
$(this).siblings('span').css('text-decoration','line-through');
}else{
$(this).siblings('span').css('text-decoration','none');
}
});
});