如何用JavaScript获得“包含单选框的标签”里的文字内容?

<div class="choices-panel">
    <div>
        <label for="option1">
            <input type="radio" name="option" id="option1" value="1" checked="">
            "aaa"
        </label>
    </div>
    <div>
        <label for="option2">
            <input type="radio" name="option" id="option2" value="2" checked="">
            "bbb"
        </label>
    </div>
    ...(共有4个这样的label单选框)
</div>

类似这样绑定在option1上的label,怎样使用JavaScript代码得到label的内容("aaa","bbb")?

阅读 4.2k
4 个回答

用JQuery倒是知道
$("label[for='option1']").text();

楼上的方法是可行的、不过可以用当前radio选择父元素再用text()

$(this).parent().text()

也可以给aaa bbb包裹一个span标签

然后用


$(this).siblings('selector').text()

已经使用如下代码完成,于ie7和webkit成功运行。

document.getElementsByClassName('choices-panel')[0].innerText;
<div class="choices-panel">
<div>
    <label for="option1">
        <input type="radio" name="option" id="option1" value="1" checked="">
        "aaa"
    </label>
</div>
<div>
    <label for="option2">
        <input type="radio" name="option" id="option2" value="2" checked="">
        "bbb"
    </label>
</div>

</div>

<script type="text/javascript">
var a = [].map.call(document.querySelectorAll('div.choices-panel > div > label[for^="option"]'),function(e){
    return e.textContent.trim();
});
console.log(a.join(' ')); // "aaa" "bbb"
</script>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题