ここで例を見てください-http://jsfiddle.net/uqYeQ/3/
最初の行は期待どおりに動作し、親内のdivのインデックスを返します。
2行目も同じように動作させたいのですが、クリックしたdivに応じて0から4の間に戻るようにします。親リストアイテムに関連してクリックされたdivのインデックスを知りたいのですが。
HTMLをまったく変更できません。
ここで例を見てください-http://jsfiddle.net/uqYeQ/3/
最初の行は期待どおりに動作し、親内のdivのインデックスを返します。
2行目も同じように動作させたいのですが、クリックしたdivに応じて0から4の間に戻るようにします。親リストアイテムに関連してクリックされたdivのインデックスを知りたいのですが。
HTMLをまったく変更できません。
これに旋風を与える(フィドル)
$("li > .myclass, li > .container").click(function(e){
$("#result").html($(this).index());
});
</ p>
これは私のために働いた(フィドル)
$('.myclass').click(function(){
var theIndex = $(this).index();
$('#result').html(theIndex);
})
$('.container').click(function(){
var theIndex = $(this).index();
$('#result').html(theIndex);
})
しかし、アンチサニティの方がセクシーです。
以下は1つのアプローチです
$('.myclass').click(function() {
var liElem = $(this).parents('li')[0]; // get li element who is a parent of the clicked element
var elems = $(this).parents();
elems.push($(this)); //array contains all parents of the clicked element and the clicked element
$(elems).each(function(key, elem) {
if ($(elem).parent()[0] == $(liElem)[0]) {
$('#result').html($(elem).index());
}
});
})