js获得无线电标签文字

时间:2011-01-05 16:10:53

标签: javascript


我有这个代码:

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

如何获取id为vote_x [使用JS] ??

的无线电标签值

感谢

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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中查看。

答案 2 :(得分:0)

现代答案

使用document.querySelector('label[for="INPUT_ID"]')获取与具有给定id的输入相对应的label元素。

示例:

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>