2012-01-28 73 views
0

好吧,让我看看我能否在这里清楚地解释这一点。 我的HTML看起来像jquery select parent elements sibling

<li> 
    <div class="info_left" rel="snack">Fries</div> 
    <div class="info_right"> 
     <span class="info_remove">[Remove]</span> 
     <span class="info_favorite">[Favorite]</span> 
    </div> 
</li> 
<li> 
    <div class="info_left" rel="lunch">Burger</div> 
    <div class="info_right"> 
     <span class="info_remove">[Remove]</span> 
     <span class="info_favorite">[Favorite]</span> 
    </div> 
</li> 
<li> 
    <div class="info_left" rel="4thmeal">Taco</div> 
    <div class="info_right"> 
     <span class="info_remove">[Remove]</span> 
     <span class="info_favorite">[Favorite]</span> 
    </div> 
</li> 

如果你会注意到,你会看到一个“删除”和“收藏”一格“info_right”里。点击这两个选项中的任何一个时,我需要做的是获取相同li的“info_left”div的rel和text值。我已经尝试了几种方法,但不认为我正确地钉牢了父母之间,兄弟姐妹之间的组合,或者我不知道。无论哪种方式希望有人能给我一个骨头。

+0

*,其中*的方式你试过吗? – Tomalak 2012-01-28 08:43:38

+1

如果你尝试过,显示你做了什么,我们可以指导你。 – 2012-01-28 08:43:48

回答

1

应该仅仅是:

$('.info_remove,.info_favorite').on('click', function() { 
    var $left = $(this).parent().siblings('.info_left'); 
    var rel = $left.attr('rel'); 
    var txt = $left.text(); 
    ... 
}); 
0

jsFiddle example

$(document).ready(function(){ 
    $(".info_right span").click(function(){ 
     $("#msg").html($(this).attr("class")+": "+$(this).parent().prev().attr("rel")); 
    }) 
}) 
0

试试这个

$('.info_remove,.info_favorite').click(function() { 
    var target_elem = $(this).parent().prev(); 
    alert(target_elem.attr('rel')); 
    alert(target_elem.text()); 
}); 

小提琴:http://jsfiddle.net/ss37P/1/