2011-12-09 12 views
1

ページにはIDのない要素があります(名前のみ)。このようなjavascriptでアクセスするには?javascriptの要素を名前でアクセスするにはどうすればいいですか?

document.getElementById('id').value := "..."; 

更新:すべての

感謝を!指定された値(ラジオボタン)の要素にアクセスすることは可能ですか?

<nobr><label><input style="vertical-align:middle" type="radio" name="name" value="value1" checked="checked"/><span style="vertical-align:middle" class="label">value1</span></label></nobr><br/> 
<nobr><label><input style="vertical-align:middle" type="radio" name="name" value="value2"/><span style="vertical-align:middle" class="label">value2</span></label></nobr><br/> 

答えて

0

他の答えはあなたの元の質問をカバーしています。値によってアクセスすることについて、あなたの更新については、そこにはgetElementsByValue()機能はありませんが、それは指定された名前と値の両方を持っている特定のラジオボタンを選択するあなたの意図されている場合は、このような何か行うことができます。機能上

function getElementByNameAndValue(n, v) { 
    var els = document.getElementsByName(n), 
     i; 

    for (i=0; i < els.length; i++) 
     if (els[i].value == v) 
     return els[i]; 

    return null; 
} 

var r = getElementByNameAndValue("name", "value1"); 

を一致する要素がの最初のへの参照を返します。一致しない場合はnullを返します。同じ名前と値を持つ複数の要素を許可したい場合は、これを変更して配列を返すことができます(同じ名前と値を持つ要素が複数ある理由はわかりませんが、少なくともラジオボタン付き)。

また、これは容易にループ内if (els[i].checked)ことが場合だけ変更し、現在チェック要素への参照を返すように修正することができます。

あなたはdocument.querySelector()を使用して、このの一部またはすべてを行うことができるかもしれませんが、私は古いIEをサポートする必要があるので、私はそれを自分自身を使用しないでください。上記のすべてをjQueryの1行で置き換えることは間違いありません。

+0

助けてくれてありがとう! 「名前」はnです。 – Dmitry

+0

申し訳ありませんが、それを修正しました。 – nnnnnn

2

document.getElementsByName('elementName')を使用しています。これはあなたに配列のようなコレクションを与え、インデックスで要素を取得します

+4

'document.getElementByName'は未定義です。複数しか存在しません。 –

+0

@Kolink - 答えを編集するだけの方がよい場合もあります。 – RobG

6
document.getElementsByName('name') 

これは配列のようにアクセスできるnodeListを返します。

3

は、その名前のノードのcollectionを返すDOM HTML getElementsByName方法があります。 名前プロパティはユニークである必要はないことに注意してください、あなたが複数を得ることができますし、返されたコレクションが生きているということなので、サブジェクト名に要素を追加したり削除すると、コレクションを変更します。

関連する問題