我得到一个长度可变的数组。第一个元素始终是父元素。他找到孩子后,找孩子等等。我需要动态添加find方法。或者有更好的方法。
MyArray:{'.grand_parent','.older_child','.younger_child'}
生成这个:
$(#base).parent('.grand_parent').find('.older_child').find('.younger_child');
这个阵列怎么样:
LongerArray:{'.grand_parent','.child1','.child2','.child3','child4'}
答案 0 :(得分: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()
方法。