【发布时间】:2012-03-16 02:07:16
【问题描述】:
如何在不从另一个函数显式声明的情况下找到加载子元素的父元素?
jquery,
$(document).ready(function(){
$('.load-child').load_child();
});
(function($) {
$.fn.extend({
load_child: function(options) {
var o = $.extend({
target:'.parent'
}, options);
var $this = this;
var $cm = this.click(function(e) {
var object = $(this);
var path = object.attr('href');
$(o.target).load(path, function(){
$this.child();
});
return false;
});
$this.child = function() {
$('.find-parent').click(function(event){
var object = $(this);
object.parents('.parent').css({background:'red'});
return false;
})
};
return $cm;
}
})
})(jQuery);
索引html,
<a href="child.php" class="load-child">load child</a>
<div class="container">
<div class="parent">
</div>
</div>
子页面,
<div>
<div></div>
<div></div>
<div><a href="#" class="find-parent">click me</a></div>
</div>
我可以得到上面的.parent 元素,因为我明确声明了父名称,
object.parents('.parent').css({background:'red'});
但是,如果父名称未知或不断更改怎么办?是否有任何通用方法来定位/追溯用于加载页面的元素?
加载的页面可能有很多 div 元素,所以我不能这样做,
object.parent().css({background:'red'});
或
object.parents(div).css({background:'red'}); // this will go up to the very top of div element.
编辑:
【问题讨论】:
标签: jquery jquery-plugins load parent-child