2

我得到一个可变长度的数组。第一个元素始终是父元素。他之后找孩子,找孩子等等。我需要动态添加查找方法。或者有没有更好的方法。

MyArray:{'.grand_parent','.older_child','.younger_child'} 

生成这个:

$(#base).parent('.grand_parent').find('.older_child').find('.younger_child');

这个数组怎么样:

LongerArray:{'.grand_parent','.child1','.child2','.child3','child4'}
4

1 回答 1

3

假设数组的第一个元素应该传递给.parent()方法,其他元素应该传递给.find()方法,不需要调用几个.find()方法,您可以.join()将元素和结果.find()作为一个选择器传递给方法:

$('#base').parent(arr[0]) // .parent(".grand_parent")
          .find(arr.slice(1).join(' ')); // .find(".child1 .child2 .child3 .child4")

请注意,该.parent()方法不选择祖父元素,它只选择被选元素的第一级父元素(如果将选择器传递给它,则仅当它与指定的选择器匹配时才选择父元素),如果你想根据您可以使用.closest().parents()方法的需要选择父/祖父元素。

于 2013-08-20T07:41:08.280 回答