Javascript jQuery多个父()调用

Javascript jQuery多个父()调用,javascript,jquery,Javascript,Jquery,我有一个for循环,它获取父元素的id和文本: for (var i = 1; i < parents_num; i++) { var prev_parent_text = jQuery(id).parent().parent().find('> .myclass').text(); var prev_parent_id = jQuery(id).parent('ul').parent('li').attr('id'); } 对于i=2: var prev_pa

我有一个for循环,它获取父元素的id和文本:

for (var i = 1; i < parents_num; i++) 
{
  var prev_parent_text = jQuery(id).parent().parent().find('> .myclass').text();     
  var prev_parent_id = jQuery(id).parent('ul').parent('li').attr('id');
}
对于i=2:

var prev_parent_text = jQuery(id).parent().parent().parent().parent().find('> .myclass').text();  
var prev_parent_id = jQuery(id).parent('ul').parent('li').parent('ul').parent('li').attr('id');
对于i=3:

var prev_parent_text = jQuery(id).parent().parent().parent().parent().parent().parent().find('> .myclass').text();  
var prev_parent_id = jQuery(id).parent('ul').parent('li').parent('ul').parent('li').parent('ul').parent('li').attr('id');
等等

我使用eq()函数失败:

var num = (i*2) - 2
var prev_parent_text = jQuery(id).parent().eq(num).find('> .myclass').text();  
var prev_parent_id = jQuery(id).parent('ul').parent('li').eq(num).attr('id');

感谢您的帮助

为每个步骤保留参考,并更新每个步骤的参考:

var $id = jQuery(id);
var $li = jQuery(id);

for (var i = 1; i < parents_num; i++) {
  $id = $id.parent().parent();
  $li = $li.parent('ul').parent('li');
  var prev_parent_text = $id.find('> .myclass').text();     
  var prev_parent_id = $li.attr('id');
}
var$id=jQuery(id);
var$li=jQuery(id);
对于(变量i=1;i.myclass').text();
var prev_parent_id=$li.attr('id');
}

为每个步骤保留一个参考,并更新每个步骤的参考:

var $id = jQuery(id);
var $li = jQuery(id);

for (var i = 1; i < parents_num; i++) {
  $id = $id.parent().parent();
  $li = $li.parent('ul').parent('li');
  var prev_parent_text = $id.find('> .myclass').text();     
  var prev_parent_id = $li.attr('id');
}
var$id=jQuery(id);
var$li=jQuery(id);
对于(变量i=1;i.myclass').text();
var prev_parent_id=$li.attr('id');
}

您可以为此添加自定义jquery函数,如下所示:

$.fn.nparent = function(n) { 
    var elem = $(this);
    for (var i=0;i<n;i++) {
       elem = elem.parent();
    }
    return elem;
}

您可以为此添加自定义jquery函数,如下所示:

$.fn.nparent = function(n) { 
    var elem = $(this);
    for (var i=0;i<n;i++) {
       elem = elem.parent();
    }
    return elem;
}

在您的情况下,请使用
parents()
。但实际上,创建一个递归函数,以便每次搜索都从它结束的地方开始。您也可以编写一个循环来调用
。parent
在您的情况下,使用
parents()
。但是实际上,做一个递归函数怎么样,这样每次搜索都从它结束的地方开始呢?你也可以写一个循环来调用
。parent
我只是在写完全相同的代码,但是你在我之前发布了:-)Thanx Guffa!这正是我的意思。我只是在写完全相同的代码,但你在我之前发布:-)Thanx Guffa!这正是我的意思。