【发布时间】:2011-08-20 01:23:14
【问题描述】:
<div class="full_width_last">
<div class="sub_div1" style="display:none">
<h2>Join</h2>
<p>Click here to sign up.</p>
<p>ID: 48</p>
</div>
<h4>Boston</h4>
<p>ioiuy</p>
<a href="#" class="join_button">Join</a>
</div>
jQuery('.join_button').bind('click', function(){
console.log(jQuery(this));
console.log(jQuery(this).parent());
console.log(jQuery('.sub_div1', jQuery(this).parent()));
return false;
}
我在使用 jQuery 选择器时遇到问题:jQuery('.sub_div1', jQuery(this).parent())
由于某种原因,库没有找到我正在搜索的 div。
两者:
console.log(jQuery(this));
console.log(jQuery(this).parent());
按预期工作。任何人都知道为什么我无法获得对 .sub_div1 的引用吗?
编辑 1: 尝试缓存父级,但这不起作用:
console.log(jQuery(this));
//console.log(jQuery(this).parent());
var p = jQuery(this).parent();
console.log(jQuery('.sub_div1', p));
编辑 2
jQuery(this).parent().children(".sub_div1") 也没有用
这段代码产生了这个结果:
console.log(jQuery(this));
console.log(jQuery(this).parent());
console.log(jQuery(this).parent().children(".sub_div1"));
Query(a.join_button #✉)
jQuery(div.full_width_last)
jQuery()
【问题讨论】:
-
你用的是什么版本的jQuery?
-
也可以尝试缓存父类,看看是否有效:
var p = jQuery(this).parent(); jQuery('.sub_div1', p);BTW,你知道 jQuery 在查找类时效率最低,最好列出 element.className(例如div.sub_div1)而不仅仅是班级本身。这样 jQuery 就可以利用原生函数。 -
@BoltClock,1.6.2 - 由ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js提供服务
-
@Casey Flynn:如果你改用
.find()或.siblings()会怎样?它们有用吗? -
@vol7ron,我尝试了你的想法,但不幸的是它没有奏效。
标签: javascript jquery dom jquery-selectors