我有這樣的代碼: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