Javascript jquery选择具有类的父级的具有类的第一个子级
为了Javascript jquery选择具有类的父级的具有类的第一个子级,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,为了clone(),如何仅选择具有特定类的父级的特定类的第一个子级 并使用类line\u item\u wrapper获取两个内部div,但在尝试此添加时得到一个空对象: children('.line_item_wrapper :first') 谢谢 试试这个: var $firstDiv = $(".sector_order > .line_item_wrapper:eq(0)"); 这将获得带有类行项目包装器的扇区顺序的第一个直接后代 您正在将无效选择器传递给子对象()。 而不是
clone()
,如何仅选择具有特定类的父级的特定类的第一个子级
并使用类line\u item\u wrapper
获取两个内部div,但在尝试此添加时得到一个空对象:
children('.line_item_wrapper :first')
谢谢 试试这个:
var $firstDiv = $(".sector_order > .line_item_wrapper:eq(0)");
这将获得带有类行项目包装器的扇区顺序
的第一个直接后代
您正在将无效选择器传递给子对象()
。
而不是
.children('.line_item_wrapper :first')
试一试
使用:第一个孩子
var form1 = $(this).closest('.sector_order').find(':first-child');
或.first()
您的问题在于您的选择器在以下几个方面是错误的:
parents()
返回与传递给方法的选择器匹配的一个、两个或多个元素;要将自己限制为第一个匹配的元素,请使用closest()
(返回一个或不返回与传入选择器匹配的元素)
第一次使用children()
方法将返回这两个元素,因为它们都与提供的选择器匹配,并且具有line\u item\u wrapper
类;您需要明确说明您想要哪一个,您可以使用:first
选择器(或first()
方法),或:first child
选择器
对children()
方法的第二次调用将查找与选择器匹配的第一个元素的子元素,而您似乎不需要这些子元素
无论如何,如果必须使用父元素(从相同的$(this)
元素开始):
或:
或:
或者,坦率地说,一种更简单的方法(但这确实省去了父类名称检查):
或:
参考资料:
这非常有用。非常感谢您花时间解释这一点。
.children('.line_item_wrapper :first')
.children('.line_item_wrapper').first()
var form1 = $(this).closest('.sector_order').find(':first-child');
var form1 = $(this).closest('.sector_order').find('.line_item_wrapper').first();
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);