jquery选择带有父类的第一个孩子与类
问题描述:
我如何才能仅为clone()
的目的选择特定班级的父母的特定班级的第一个孩子?jquery选择带有父类的第一个孩子与类
<div class="sector_order">
<div class="line_item_wrapper">
SELECT THIS DIV
</div>
<div class="line_item_wrapper">
NOT THIS DIV
</div>
</div>
我想是这样的:
var form1 = $(this)
.parents('.sector_order')
.children('.line_item_wrapper')
.children().clone(true)
,并得到与类line_item_wrapper
两个内div但我得到一个空的对象,当我尝试用这种添加:
children('.line_item_wrapper :first')
谢谢!
答
你的问题是,你的选择我在以下几种方式中错误:
parents()
返回与传递给方法的选择器匹配的一个,两个或多个元素;将自己限制为使用closest()
(它返回与传入的选择器匹配的一个元素或不包含元素)的第一个匹配元素。
你的第一次使用children()
方法的返回两个元件,因为它们既匹配所提供的选择器,并具有类的line_item_wrapper
;您需要明确说明您要使用哪两种,您可以使用:first
选择器(或first()
方法)或:first-child
选择器。
对children()
方法的第二次调用查找选择器匹配的第一个元素的子元素,您不需要似乎需要。
无论如何,如果你必须使用父(来自同一$(this)
元素开始):
var form1 = $(this).closest('.sector_order').find('.line_item_wrapper:first').clone(true);
或者:
var form1 = $(this).closest('.sector_order').find('.line_item_wrapper').first().clone(true);
或者:
var form1 = $(this).closest('.sector_order').find('.line_item_wrapper:first-child').clone(true);
或者坦白地说,一个更简单的方法(但这不会取消父级名称检查):
var form1 = $(this).prevAll('.line_item_wrapper:last');
或者:
var form1 = $(this).siblings('.line_item_wrapper').eq(0);
参考文献:
答
试试这个:
var $firstDiv = $(".sector_order > .line_item_wrapper:eq(0)");
这将让你的sector_order
第一嫡系与类line_item_wrapper
。
答
你传递一个无效的选择器children()
。 而不是
.children('.line_item_wrapper :first')
尝试
.children('.line_item_wrapper').first()
答
使用:first-child
var form1 = $(this).closest('.sector_order').find(':first-child');
或.first()
var form1 = $(this).closest('.sector_order').find('.line_item_wrapper').first();
这是非常有帮助的。非常感谢您花时间解释这一点。 – 1252748
你非常欢迎;我很高兴得到了帮助! =) –