JS获得无线电标签文本

问题描述 投票:2回答:3

我有这样的代码:

<input type=radio name="vote_x" value="5">
    <label for="vote_x">blabla</label><br>

我怎样才能获得无线电标签值与[使用JS] vote_x的ID?

谢谢

javascript
3个回答
3
投票

如果你把一个id这样在标签上

<input type="radio" name="vote_x" value="5">
<label id="for_vote_x" for="vote_x">blabla</label>

然后,您可以使用

var textinlabel = document.getElementById("for_vote_x").innerHTML;

编辑:随着出使用ID为标签元素

var labelElements = document.getElementsByTagName("label");
for (var i = 0, var labelElement; labelElements[i]; i++) {
  if (labelElement.getAttribute("for") == "vote_x") {
    //this is the labelElement you want
    //code goes here
  }
}

理想情况下,你会想创建这样的通用功能

function getlabelforinput(inputname) {
    var labelElements = document.getElementsByTagName("label");
    for (var i = 0, var labelElement; labelElements[i]; i++) {
      if (labelElement.getAttribute("for") == inputname) {
        return labelElement
      }
    }
    return null;
}

0
投票

你可以试试这个

var el = document.getElementById("vote_x");
while(el.nextSibling && !(/label/i.test(el.nextSibling.tagName))){
    el = el.nextSibling;
}
var text = el.nextSibling.innerHTML

您可以在此fiddle检查。


0
投票

Modern answer

使用document.querySelector('label[for="INPUT_ID"]')获得对应于具有给定id输入标签元素。

例:

const label = document.querySelector('label[for="vote_x"]');
console.log(label.textContent.trim());
<input type=radio name="vote_x" value="5">

<label for="vote_x">blabla</label>
© www.soinside.com 2019 - 2024. All rights reserved.