JQMを実行すると、次のように見えるHTMLがあります(簡略化)。
<div id="servicesList">
<div id="servicesHeader">Services</div>
<ul data-role="listview" class="ui-listview">
<li id="Serv1" class="serviceLink">Service 1</li>
</ul>
<ul data-role="listview" class="ui-listview">
<li id="Serv2" class="serviceLink">Service 2</li>
</ul>
</div>
このコードは、別のスクリプトから動的に生成されます。
各サービスには、さらにいくつかのデータを動的に取り込むクリックイベントがアタッチされています。理想的には、クリックされた時点でサービスのインデックスを参照できるようにしたいと思います。これが私の現在のコードです:
$('.serviceLink').click(function() {
var index = $(this).closest("ul").index();
servAnimate(index);
});
明らかに、プルされたオブジェクトの配列にはservicesHeader divが含まれているため、これは機能しません。親ulの配列のみを取得するにはどうすればよいですか?基本的に、ユーザーがサービス1をクリックすると、返されるインデックスは1ではなく0である必要があります。現在、インデックス0はservicesHeaderdivを参照しています。
私もこれを試しました:
$(this).closest("ul").filter("ul").index();
どんな助けでもいただければ幸いです!
編集:HTMLが別の開発者からのスクリプトによって生成されていることを指定する必要がありました。それは変わるかもしれません、それは同じままかもしれません。私がこれまでに持っている唯一の保証は、ULが同じレベルにとどまり、クラスserviceLinkを持つことです。
繰り返しになりますが、他にどの兄弟要素が存在するかに関係なく、親ULのインデックスのみを取得するにはどうすればよいですか?