2017-03-22 16 views
1

私はIDが一意でなければならないことを知っていますが、同じIDを持つ2つの要素を扱う必要があります。最初の1つ。 JavaScriptのIDと同じIDで2番目の要素にアクセスするにはどうすればよいですか?JavaScriptで同じIDを持つ2つの要素を扱う場合

最初の要素

<INPUT id=Edit class=Design_01 style="IME-MODE: active" type=submit value= Edit> 

第二の要素

<INPUT id=Edit class=Design_01 style="IME-MODE: active" type=submit value= Edit> 
+2

これを試してもらえますか? 'document.querySelectorAll("#Edit ")' – Lukabot

+0

同じIDを持つ2つの要素を持つことはできません – HenryDev

+0

これは、クラスの使用に多くの時間を節約します。規約では、htmlタグ内の各キーのすべての値を引用符で囲むことを提案しています。このように、divに2つのクラスを付けることができます。引用符では、複数のクラスを指定することができます: ''その要素は2つのクラスに属し、 'document.getElementsByClassName(" editClass ")'(配列を返します)を使用できます。 – GameGibu

答えて

5

QUE、しかし、私はあなたが同じ名前で複数のidの属性を持っている場合、それが故に一意である必要があります述べてきたように、まったく同じIDを持つ2つの要素

を持っているページ に対処する必要がありますそれは有効なHTMLではありません。

JavaScriptで最初に と同じIDで2番目の要素にアクセスするにはどうすればよいですか?

getElementsByClassNamegetElementsByClassName 2つの同じ属性の属性が無効なHTMLですか?

これを念頭に置いて、getElementsByClassNameを使用することができます。これは、お客様の要件に適している可能性があります。

例:

var x = document.getElementsByClassName("Design_01"); // x is an array 
var firstElement = x[0]; // get first element 
var secondElement = x[1]; // get second element 

関連の読書:あなたが使用することができます

+0

downvoteの理由は何ですか? –

+0

実際にあなたはIDでjQueryにすることはできませんが、バニラのjsで –

+0

@RickCalderでできます。それは私の解決策が有効でないことを意味します。 –

3
var bothElements = document.querySelectorAll("[id='Edit']"); 

あなたは、その後で二番目にアクセスすることができます。私はIDはユニでなければならないことを知っている

bothElements[1]. 
+0

も機能し、少し冗長です。 –

3

クラスのセレクタを使ってそれらのすべてを選択し、必要なものを指名します。

var inputs = document.getElementsByClassName('Design_01'); 
var requiredInput = inputs[1]; 
0

あなたはこれらの技術は信頼できない可能性があるため、ページ上の同じIDの2以上を持っているかもしれないソリューションを構築している場合は、これらの技術は非常によく仕事、私は注意をお勧めすることがありますが。私の経験上、無効なHTMLは他の場所で問題を引き起こす可能性はほとんどあります。

は、仕様を参照してください: https://www.w3.org/TR/html5/dom.html#the-id-attribute

id属性は、その要素の一意の識別子(ID)を指定します。

この環境で動作する可能性がありますが、さまざまなブラウザ、実装、フレームワークで異なる処理が可能です。ブラウザの更新により、警告なしにソリューションが破損する可能性があります。

クラスを使用するか、HTMLで問題を解決することを強くお勧めします。

+1

OPがこの特定のページのHTMLを制御していないという質問の文言からはかなり明らかです。質問自体は、IDが一意でなければならないことをすでに認めています。 – nnnnnn

+0

十分に十分ですが、私たちはマークアップを変更できない問題に取り組んできたと確信しています。しかし、私はそれが頂点を構築することの結果のいくつかを指摘する価値があると思った。 OPはおそらくユーザーの環境を制御することもできません。 – cloudworks

+0

彼はページを作成せず、HTMLを制御できません。だから、これは現時点での問題に対する解決策ではなく、コメントであったはずです。 –

関連する問題