2013-10-09 82 views
0

鉴于以下标记和JS,为什么第一条语句有效并且seond不是?Jquery和.parent()

jQuery的

$('.selector').change(function() { 
    // does work 
    $(this).parent(".controls").after("<div class=\"control-group\">Test</div>"); 

    // doesn't work 
    $(this).parent(".control-group").after("<div class=\"control-group\">Test</div>"); 
} 

HTML

<div class="control-group"> 
    <label class="control-label" for="description">Section Type</label> 
    <div class="controls"> 
    <select class="selector"> 
     // options 
    </select> 
    </div> 
</div> 
+0

这是什么? – Sergio

+0

这是什么@Lizard –

+0

'这是一个dom元素 - 我应该更清楚这是一个llamda函数里面的一个.change事件 – Lizard

回答

5

你应该使用:

  • .closest(),它只给出与该选择器匹配的第一个元素(从当前选定的元素开始)或
  • .parents()给您所有匹配t帽子选择器(从当前选定元素的父项开始)。

.parent()方法只行进单级向上DOM树

1

呸!我应该有RTFM!

的。家长()和.parent()方法是相似的,不同之处在于 后者只行进的单级了DOM树