如果我需要选择第10个父对象,有没有更干净的方法,然后重复.parent() 10次?
$('#element_id').parent().parent().parent().parent().parent().parent().parent().parent().parent().parent();发布于 2011-01-13 05:59:07
如果您真的需要获取第10个父对象,并且无法使用选择器来实现,则最顺利的方法可能是这样:
$('#element_id').parents().eq(9);发布于 2011-01-13 04:11:20
如果有一个选择器代表你想要的目标,那么使用.closest()或.parents()。
$('#element_id').closest('.someClass');
$('#element_id').parents('.someClass:first');...but这两个函数都将返回找到的第一个匹配项。正确的解决方案将取决于您实际的HTML标记。
(请注意,.closest()还计算原始元素,而parents()从第一个祖先开始。)
还请记住,浏览器会进行HTML更正。因此,如果从没有<tbody>的<table>内部遍历到<table>外部的元素,执行x次.parent()可能会在不同的浏览器中产生不同的结果。
发布于 2011-01-13 04:13:58
下面的post here使用了这个实现:
jQuery.fn.getParent = function(num) {
var last = this[0];
for (var i = 0; i < num; i++) {
if(!last) break;
last = last.parentNode;
}
return jQuery(last);
};
// usage:
$('#myElement').getParent(3);所以你的用法很简单:
$('#element_id').getParent(10);https://stackoverflow.com/questions/4673508
复制相似问题