2016-12-05 78 views
-1

标签的变更内容我有以下几点:jQuery的 - 在点击输入

<INPUT class="input_checkItem" TYPE="checkbox" NAME="n_checkbox" VALUE="1234" id="1" checked> 
<label for="1">The value of this label is Yes</label> 

而且我需要一种方法,这样,当我点击它改变了匹配的input从“有”到“标签文本否“,反之亦然。 (checked总是等于“是”,如果这有所作为)

但我不知道如何实际访问文本值,更不用说改变它了。

到目前为止,我有:

$('body').on('click','.input_checkItem',function() 
{ 
    txt = $(this).closest("label").text(); 
    alert(txt); 
}) 

但这只是回来空白。我怎样才能做到这一点?

回答

0

试试这个:

$('body').on('click','.input_checkItem',function(){ 
    $(this).next('label').text('Done'); 
}); 

Working fiddle

0

试试这个

HTML

<div> 
    <input type="checkbox" name="chck"> 
    <label>No</label> 
</div> 

JS

$('input[name="chck"]').change(function() { 
    var text = ($(this).is(':checked')) ? 'Yes' : 'No'; 
    $(this).parent().find('label').text(text); 
}); 

接下来,您可以使用html5数据属性来设置文本,因为js脚本中的文本很丑。

添加到复选框属性

<input type="checkbox" name="chck" data-label-yes="Yesss" data-label-no="Nooo"> 

,改变JS来

var text = ($(this).is(':checked')) ? $(this).data('label-yes') : $(this).data('label-no'); 

JSFIDDLE

UPDATE

JSFIDDLE_2

+0

欢呼声,这是伟大的。但是,如果我有两个(或更多)复选框,我怎样才能将它限制为已更改的那个? – IGGt

+0

哦对不起,固定复选框的名称是不好的选择,你需要更像全球像课堂等等我更新了答案。 – daremachine

+0

欢呼,那完美的作品。 – IGGt

1

Working Fiddle

$(".input_checkItem").change(function() { 
    if (this.checked) { 
    $(this).next('label').text('done'); 

    } else 
    alert(2); 
});