2017-03-02 4 views
2

私はオートメーションフレームワーク内でペアリストを宣言しようとしていますので、そのリストの2つのパラメータを渡します。最初のパラメータは「使用可能な」アイテムリストのDOM IDで、2番目のパラメータは「選択済み」アイテムリストのDOM IDです。私が働いている特定の場合にはユニークでないIDを持つ2番目の要素へのアクセスをJavascriptに指示するには

var pairedList: newPairedList("availableItemsListID" , "selectedItemsListID"); 

、availableItemsListIDとselectedItemsListID両方がDOMで同じIDを持って起こります。

両IDが「X-フィールドセット-bwrap」であり、そしてIはavailableItemsListIDを示すために、次の試みているが、IDの最初のインスタンスであり、そしてselectedItemsListIDは、IDの2番目のインスタンスである:

var pairedList: newPairedList("/x-fieldset-bwrap/[0]" , "/x-fieldset-bwrap/[1]"); 

availableItemsListが見つかったようですが、selectedItemsListを取得しようとすると失敗します。誰もが問題を最善に処理する方法に関する提案はありますか?

ありがとうございます!

+0

最高のハンドルはIDが一意にするためにある、ページが実際に私はこれを理解 – Alex

+0

が壊れている、しかし私は、私はIDを変更することが可能な位置ではないです。 – JOberloh

+0

newPaireListの動作方法を変更できますか? IDが変更されない限り(ちょうどあなたのお尻の安全を保つために)これが生産環境を遅かれ早かれ下げることをあなたの上司にメールしてください – Alex

答えて

1

第1の要素と何らかの形で第1の要素を区別できる場合は、その違いを選択範囲で使用できます。以下を参照してください:

function display($div) { 
 
    console.log($div.html()); 
 
} 
 

 
display($('#unique')); 
 
$('#unique').addClass('firstUnique'); 
 
display($('#unique:not(.firstUnique)'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div id="unique">One</div> 
 
<div id="unique">Two</div>

2

document.querySelectorAllを使用すると、CSSセレクタに一致するすべての要素を選択できます。

document.querySelectorAll("#x-fieldset-bwrap")idのすべての要素に一致し、x-fieldset-bwrapです。

DOM内で繰り返しIDを持つ要素が同時に生成されないようにシステムを変更できる場合は、そのようにすることを強くお勧めします。

関連する問題