Javascript js获取无线电标签文本

Javascript js获取无线电标签文本,javascript,Javascript,我有以下代码: <input type=radio name="vote_x" value="5"> <label for="vote_x">blabla</label><br> 布拉布拉 如何获取id为vote\x[使用JS]的收音机的标签值 如果您像这样在标签上加上id,谢谢 <input type="radio" name="vote_x" value="5"> <label id="for_vote_x" f


我有以下代码:

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

布拉布拉
如何获取id为
vote\x
[使用JS]的收音机的标签值


如果您像这样在标签上加上id,谢谢

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

已编辑:不使用标签元素的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;
}
你可以试试这个

var el = document.getElementById("vote_x");
while(el.nextSibling && !(/label/i.test(el.nextSibling.tagName))){
    el = el.nextSibling;
}
var text = el.nextSibling.innerHTML
您可以在这里查看。

现代答案 使用
document.querySelector('label[for=“INPUT\u ID”]”)
获取与给定ID的输入相对应的label元素

例如:

const label=document.querySelector('label[for=“vote_x”]”);
log(label.textContent.trim())


blabla
这是直接的JS还是jQuery?有没有不需要为标签创建ID的解决方法?@Ronan Dejhero。。。。我添加了一个不同的解决方案,如果将标签放在输入元素之前或之后,该解决方案将起作用。是否仍要获取单选按钮的选定标签?我猜这会起作用,但可能无法保证标签是下一个同级?循环将处理可能位于输入元素和标签之间的文本节点。如果位置不固定,那么@John的解决方案()将是最好的。
var el = document.getElementById("vote_x");
while(el.nextSibling && !(/label/i.test(el.nextSibling.tagName))){
    el = el.nextSibling;
}
var text = el.nextSibling.innerHTML