最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - js get radio label text - Stack Overflow

programmeradmin6浏览0评论


i have this code :

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

how can i get the label value for radio with id of vote_x [using JS] ??

thanks


i have this code :

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

how can i get the label value for radio with id of vote_x [using JS] ??

thanks

Share Improve this question edited Jan 5, 2011 at 16:17 TeAmEr asked Jan 5, 2011 at 16:10 TeAmErTeAmEr 4,76913 gold badges66 silver badges108 bronze badges 1
  • is this straight JS or jQuery? – hunter Commented Jan 5, 2011 at 16:15
Add a ment  | 

3 Answers 3

Reset to default 3

If you put an id on the label like this

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

You can then use

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

Edited: With out using an id for the label element

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

Ideally you would want to create a Generic function for this

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

Modern answer

Use document.querySelector('label[for="INPUT_ID"]') to get the label element corresponding to the input with given id.

Example:

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>

You can try this

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

You can check it in this fiddle.

发布评论

评论列表(0)

  1. 暂无评论