我有这样的代码:JS获得无线电标签文本
<input type=radio name="vote_x" value="5">
<label for="vote_x">blabla</label><br>
我怎样才能获取标签值的收音机的vote_x
[使用JS] ID?
感谢
我有这样的代码:JS获得无线电标签文本
<input type=radio name="vote_x" value="5">
<label for="vote_x">blabla</label><br>
我怎样才能获取标签值的收音机的vote_x
[使用JS] ID?
感谢
如果你把一个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;
}
任何解决方法无需为标签创建标识? – 2011-01-05 16:16:57
@Ranan Dejhero ....我添加了一个不同的解决方案,如果您在输入元素之前或之后放置标签,它将起作用。 – 2011-01-05 16:24:14
谢谢,它的工作,但它有一些错误(与var) – 2011-01-05 16:44:05
你可以试试这个
var el = document.getElementById("vote_x");
while(el.nextSibling && !(/label/i.test(el.nextSibling.tagName))){
el = el.nextSibling;
}
var text = el.nextSibling.innerHTML
您可以检查它在这个fiddle。
我想这会工作,但也许标签不保证是下一个兄弟? – hunter 2011-01-05 16:23:31
循环将处理输入元素和标签之间可能出现的文本节点。如果位置不固定,那么@ John的解决方案(http://stackoverflow.com/questions/4606300/js-get-radio-label-text/4606417#4606355)将是最好的。 – 2011-01-05 16:25:06
是这个直的JS或jQuery? – hunter 2011-01-05 16:15:50