2016-12-05 67 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); 
});