2012-03-30 64 views
3

我有一個單選按鈕,需要根據用戶輸入動態更新,但正常的.val().text().html()不起作用。我如何使用jQuery或純JavaScript來更改單選按鈕的文本?如何更改單選按鈕的文本

+3

如果你正在談論的是旁邊的單選按鈕出現在標籤,那麼它是不是單選按鈕的一部分。使用'.next'相應的單選按鈕來訪問元素只要它是封閉的了'label'標籤內或'span' – 2012-03-30 15:16:44

+0

aahhh那是令人沮喪:(。THX的答案:) – user1082764 2012-03-30 15:21:51

+0

使用

回答

1

單選按鈕沒有與之關聯的文本。

但是,如果您在收音機選項旁邊有label tag/span tag。那麼你可以使用.next訪問元素,並改變其text/html

DEMO

HTML:

<input type="radio" /><label>Option 1</label> 

<input type="radio" /><span>Option 1</span> 

JS:

var $label = $('input[type=radio]').next(); 
$label.text('Options'); 

或者您可以使用下面的hack來更改收音機選項旁邊的文本。請注意,以下代碼假定文字位於無線電選項旁邊。

DEMO

var isRadioLabel = 0; 
$('div').contents().each(function() { 
    if (this.nodeName == '#text' && isRadioLabel == 1) { 
     isRadioLabel = 2; 
    } 
    if (isRadioLabel == 2) { 
     this.nodeValue = 'Options'; 
     isRadioLabel = 0; 
    } 
    if (this.type == 'radio') { 
     isRadioLabel = 1; 
    } else { 
     isRadioLabel = 0; 
    } 
}); 
+1

+0

@Abhishek從OP後 - >'我如何使用jQuery或普通的JavaScript來更改單選按鈕的文本?'OP在jQuery中標記它。再次說明爲什麼使用jQuery不好。如果您錯過了答案的第一部分,我就提到了使用標籤/ span標籤。請與我分享普通香草JS,以達到與上述相同的效果。 – 2012-03-30 15:38:07

5

無線電輸入沒有文字

所有它是這樣的:

<input type="radio" /> 

on and off radio inputs

2

如果您<label>已與使用for特定單選按鈕被正確關聯屬性(因爲它應該是)...

<form> 
    <input type="radio" id="example" /> 
    <label for="example">Clickyclick</label> 
</form> 

...您可以使用for屬性來搜索DOM。使用jQuery:

<script> 
    var yourElement = $("#example"); 
    var itsLabel = $("[for=" + yourElement.attr("id") + "]"); // <--- 
    itsLabel.css("color", "red"); 
</script> 

試試吧in this fiddle

+0

使用jsfiddle [正確](http://jsfiddle.net/2RQPJ/1/):-P – Neal 2012-03-30 15:36:41

相關問題