我想选择“mainDiv”的“div” - 孩子的所有“输入” - 孩子。我尝试使用'div input:first-child',如下所示,我在http://api.jquery.com/first-child-selector/找到它。但它不起作用。如果我只使用'div'作为过滤器,它可以正常工作。那我的错是什么?或者如何以简单的方式获得所有“输入” - 孩子?
var data = ['name1', 'name2'];
var mainDiv = $('<div>');
for (var i = 0; i < data.length; i++)
{
var div = $('<div>').appendTo(mainDiv);
$('<input type="checkbox">').appendTo(div);
div.append(' ' + data[i]);
}
mainDiv.children('div input:first-child').each(
function()
{
var child = $(this);
alert('xx');
});
答案 0 :(得分:9)
假设我已正确理解您的问题,您正试图获取input
的所有div
个子元素:
mainDiv.find("div > input");
如果你想要所有后代input
元素,不仅仅是直接的孩子:
mainDiv.find("div input");
请注意,您需要使用find
,而不是children
。 children
方法仅查看直接子节点,如果它们与选择器匹配则返回它们。选择器div input
将不匹配任何直接子项(唯一的直接子项是div
),因此不返回任何元素。
答案 1 :(得分:0)
嗯,你实际上是用
创建一个div var mainDiv = $('<div>');
然后你附加一个<div>
var div = $('<div>').appendTo(mainDiv);
然后您将<input>
附加到<div>
$('<input type="checkbox">').appendTo(div);
因此输入不是mainDiv的直接子节点,它们是后代,所以你必须这样做
mainDiv.find('input').each