Javascript - 如何在不清除输入的情况下更改标签的 innerText

标签 javascript html input label innertext

我想问一下如何通过 Javascript 更改单选按钮的标签 innerText(见下面的代码)同时不清除输入标签里面。此处的标签 innerText 表示“Button-Label-X”。

我尝试通过 document.getElementsByClassName("radio-label") 的元素来诊断标签样式,包括

  • textContent: "Button-Label-X"
  • innerText :"按钮-标签-X"
  • outerText :"按钮-标签-X"

然后为它们分配新的字符串值(例如“Button-Label-Y”)。然而,所有这些方式都会导致相同的结果:输入消失,只剩下新的值。有人在这里有什么想法吗?

<div class="radio">
  <label class="radio-label"><input type="radio" name="optradio"> Button-Label-X </label>
</div>

当然,我可以通过将 input 标签放在 label 之外来解决问题,然后一切都解决了。但是,对于那种情况,我必须为输入设置 id 并为标签设置“for:id”。对于 05 个按钮而不是 01 个按钮的情况,它变得繁琐。

最佳答案

如果我没理解错的话,您可以从childNodes 访问文本部分。 .拥有它后,您可以通过设置属性 textContent 来更改文本。到想要的文字。

像这样:

function changeLabelText(label, text) {
  var children = label.childNodes;
  [].forEach.call(children, function(child) {
    if (child.nodeType == 3) {
      child.textContent = text;
    }
  });
}

var label = document.querySelector('label');
changeLabelText(label, 'blabla');
<div class="radio">
  <label class="radio-label"><input type="radio" name="optradio"> Button-Label-X </label>
</div>

关于Javascript - 如何在不清除输入的情况下更改标签的 innerText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45695278/

相关文章:

javascript - 我如何从谷歌索引中隐藏查询字符串?

JavaScript 比较语句

javascript - 结果的老虎机绘图线

JAVA帮助获取输入的总和

javascript - 导航栏被分成多个 div 类 - 如何将它们全部粘贴到滚动条的顶部? (JavaScript)

javascript - 切换 Bootstrap 4 桌面导航的滑入动画

java - 如何在JSP中对输入框的文本更改执行查询

StreetNumber 字段的 android EditText inputType

html - 如何设置与容器字体大小相同的图像大小

html - 3 列 DIV 之间的间距