2013-07-23 71 views
0

我试图选择一个最接近jquery的值,但我是一个新手,我的尝试没有成功。最近的选择器jQuery

谁能告诉我我做错了什么?任何帮助感谢!

<div class="two columns">        
<form class="float-right"> 
    <input type="hidden" id="show_id" value="329"> 
    <input type="hidden" id="user_id" value="172"> 
    <div id="follow-button" class="button small follow-call follow-show float-right">Follow</div> 
    </form> 
</div> 
<div class="two columns">       
<form class="float-right"> 
    <input type="hidden" id="show_id" value="389"> 
    <input type="hidden" id="user_id" value="172"> 
    <div id="follow-button" class="button small follow-call follow-show float-right">Follow</div> 
    </form> 
</div> 

jQuery的

$('.follow-show').bind('click', function() { 
     var button = $(this); 
     var show_id = button.closest("#show_id").val(); 
     var user_id = button.closest("#user_id").val(); 
}); 
+2

(一)'.closest'查找*祖先*,不兄弟姐妹(请参阅[文档】(http://api.jquery.com/closest/) )。 (b)身份证必须是**唯一的**。 –

回答

2

不要使用重复的ID,您可以使用类代替,

您需要使用siblings代替closest

var button = $(this); 
var show_id = button.siblings("#show_id").val(); 
var user_id = button.siblings("#user_id").val(); 
+0

太好了,非常感谢! – Callombert

0

不能使用2个元素的相同ID。试着去上课。我用jquery Siblings方法来选择。

<div class="two columns"> 
<form class="float-right"> 
    <input type="hidden" class="show_id" value="329"> 
    <input type="hidden" class="user_id" value="172"> 
    <a id="follow-button" class="button small follow-call follow-show float-right">Follow</a> 
    </form> 
</div> 

<div class="two columns"> 
<form class="float-right"> 
    <input type="hidden" class="show_id" value="330"> 
    <input type="hidden" class="user_id" value="173"> 
    <a id="follow-button" class="button small follow-call follow-show float-right">Follow</a> 
    </form> 
</div> 

jQuery的

$('.follow-show').bind('click', function() { 

     var button = $(this); 
     var show_id = button.siblings(".show_id").val(); 
     var user_id = button.siblings(".user_id").val(); 

     alert(show_id); 
     alert(user_id); 
}); 

这里样品小提琴:http://jsfiddle.net/

0

最近总是适用于只是父元素。它不会选择最接近的子元素。 兄弟姐妹总是检查向下的元素。

<div id="div1">Nitin </div> 
<ul class="level-3"> 
    <li class="item-1">1</li> 
    <li class="item-2">2</li> 
    <li class="item-3">3</li> 
</ul> 

的jQuery:

$('.level-3').closest('#div1').css('background-color', 'red'); 
//Select nothing 

$('.item-1').closest('li').css('background-color', 'red'); 
//Mark 1 as red 

$('.item-1').closest('ul').css('background-color', 'red'); 
//Mark <ul class="level-3"> as red. 

$('.item-1').siblings('li').css('background-color', 'green'); 
//Mark 2 and 3 as green`