2011-02-15 18 views
7

मेरे पास है:jquery: निकटतम ('एच 3') चयनकर्ता?

<ul class="rating"> 
    <h3>Like this</h3> 
    <li class="rating-number"> 
     <div id="iLikeThis" class="iLikeThis"> 
      <span class="counter">2</span> 
     </div> 
    </li> 
</ul> 

यह मेरा jQuery कोड

$('.iLikeThis .counter').each(function() { 
     $(this).parent().parent().parent().children('h3').text('You like this'); 
     $(this).parent().addClass('like'); 
}); 

है वहाँ निकटतम h3 तत्व का चयन करने के लिए एक बेहतर तरीका है। यह 3-बार माता-पिता() के साथ काम करता है लेकिन निकटतम ('एच 3) के साथ नहीं।

क्यों?

+1

यह वह जगह है अमान्य HTML। आपके पास 'ul' के बच्चे के रूप में' h3' नहीं हो सकता है। इस तरह टूटी हुई एचटीएमएल के साथ, यह जानना असंभव है कि ब्राउजर सही काम करता है या नहीं। – RoToRa

+0

@RoToRa: अच्छा पकड़ो। – BoltClock

+0

धन्यवाद! क्या आप इसे ली के बच्चे के रूप में कर सकते हैं? – matt

उत्तर

13

h3.counter का अभिभावक नहीं है, जो काम नहीं करेगा। बजाय .rating पर .closest() का प्रयोग करें और अपने h3 लगता है:

$(this).closest('.rating').children('h3').text('You like this'); 
संबंधित मुद्दे