2011-01-05 14 views
0


を得る:jsが、私はこのコードを持っているラジオラベルテキスト

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

は、どのように私は、[JSを使用] vote_xのIDと無線のラベルの値を取得できますか?外でのidを使用して:あなたはこの

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

のようにラベルにIDを入れた場合

おかげ

+0

は、このストレートJSまたはjQueryですか? – hunter

答えて

2

はその後、編集

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

を使用することができますラベル要素

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

理想的には、あなたはあなたがこのfiddleでそれを確認することができ、この

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

を試すことができます。この

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

ラベルのIDを作成する必要はありません。 –

+0

@Ronan Dejhero ....入力要素の前後にラベルを置くと動作する別のソリューションを追加しました。 –

+0

ありがとう、それは働いたが、それは(varと)いくつかのエラーがあった –

0

のための一般的な関数を作成したいと思います。

+0

私はこれが動作すると思いますが、多分ラベルは、次の兄弟であることが保証されていない? – hunter

+0

ループは入力要素とラベルの間に入る可能性のあるテキストノードを処理します。ポジションが固定されていない場合は、@ Johnのソリューション(http://stackoverflow.com/questions/4606300/js-get-radio-label-text/4606417#4606355)が最適です。 –

関連する問題