簡體   English   中英

如何更改單選按鈕的文本

[英]How to change the text of a radio button

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

收音機輸入沒有文字

一切都是這樣的:

<input type="radio" />

打開和關閉無線電輸入

如果您的<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>

試試這個小提琴

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

但是如果你在無線電選項旁邊有一個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'); 

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

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;
    }
});

在 JS 中試試這個。

<label id=labId for=labId     onClick="changeText(this.id)">RADIO BUTTON TEXT</label>
<input type=radio />

<script type="text/javascript">"use strict";
const stat=["Old Radio Button Label Text","NEW RADIO BUTTON LABEL TEXT"];
let   cptr=0;

function changeText(button_id){
   var el = document.getElementById(button_id);
   el.firstChild.data = stat[cptr^=1];
}
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM