インスタンス化可能なポートレットを作成しました。このポートレットの複数のインスタンスを同じページにデプロイしたときに、セレクタのみが原因でjQuery関数が正しく機能しませんIDまたはドキュメント内のクラスによって最初の要素を選択します。インスタンス化可能なポートレット内のjQueryセレクタ(IDの重複)
私はインスタンスIDを区別するためにIDに含めようと考えていました。
私の問題は、私が持つ要素を選択するcan'tことで、コンソールには次のようなエラーがスローされます。
Uncaught Error: Syntax error, unrecognized expression: .tabOferta:eq(1)
私は選択したい要素がある:
<li class="<portlet:namespace/>tabOferta" id="<portlet:namespace/>tabOferta">
私はしました次のような指示をテストしました:
$(".<portlet:namespace/>tabOferta");
document.getElementsByClassName('<portlet:namespace/>tabOferta');
document.getElementsById('<portlet:namespace/>tabOferta');
問題は次のとおりです。特定の要素を選択する方法eは同じIDを持つ複数のポートレットですか?
<porlet:namespace>
変数をmain.jsで解決するにはどうすればよいですか?
IDは一意である必要があります。なければならない。デザインの結果が重複IDになった場合は、重複するIDがないようにデザインを変更するだけです。 1つのセレクタで複数の要素を選択する必要がある場合は、クラスを使用します。 –
私はIDの一意性を理解していますが、IDでなくクラス別にjqueryセレクタを変更しても同じ問題があります。同じページに同じポートレットを2回デプロイすると、クラスセレクタが最初に発生します。あるポートレットと他のポートレットとの違いは何ですか? –