Javascript JQuery,检索子代和子代

Javascript JQuery,检索子代和子代,javascript,jquery,arrays,dom,Javascript,Jquery,Arrays,Dom,假设我有一个JQuery对象,它具有(或指向)这样的结构: <div id="parent"> <div id="child1"> <div id="grandchild1"> // ... grandchild can also have children </div> // ... and so on of grandchildren </div> <div id="child2

假设我有一个JQuery对象,它具有(或指向)这样的结构:

<div id="parent">
  <div id="child1">
    <div id="grandchild1">
      // ... grandchild can also have children
    </div>
    // ... and so on of grandchildren
  </div>
  <div id="child2">

  </div>
  // .... and so on
</div>
谢谢

请注意,它不能是类似$('div>div')的选择器,因为我已经有了 JQuery对象,仅从该对象中获取内容。

您可以使用该方法将JQuery对象生成数组

var arr = my_obj.toArray();
…或方法(如果不传递任何参数)

var arr = my_obj.get();

如果我误解了,并且您指向结构的根,并且需要获得其子代,请使用该方法

var descendants = my_obj.find('div');

jQuery,使您能够从给定点绕过DOM结构


如果您只想要孩子和孙子孙女,而不是更深层次的,请执行以下操作:

var two_generations = my_obj.find('> div > div');
var two_generations = my_obj.find('> * > *');
这将使您的
div
元素只有两代的深度

如果不想将其限制为
div
元素,请执行以下操作:

var two_generations = my_obj.find('> div > div');
var two_generations = my_obj.find('> * > *');

您可以使用选择器检索子代和子代。项目将按树顺序返回。然后,可以使用以下方法获得元素的普通数组:

$(函数(){
var a=$(“#包装器”).find(“*”).toArray();
控制台日志(a);
});

嘿,伙计,我是新来的,我也有过类似的大脑放屁。为了得到孙辈,我建议使用.children()方法:

$('#parent') //selects the parents
$('#parent').children() //selects the children
$('#parent').children().children() //selects the grandchildren

我相信你的意思是
$('parent,parent*')。toArray()
,对吗?@patrick dw,这会让孩子们和孙子们也这么做吗?@kmb385:问题标题和文本似乎有点不同步,但我更新了我的答案,以防OP实际上只指一个特定的节点,而不是整个节点。我很想知道你的意思“…获取元素的普通数组(JQuery对象)。。。“.你想要什么?数组还是jQuery对象?jQuery对象实际上是数组,对吗?我的意思是我想得到父对象和所有嵌套的元素不,jQuery对象有时被称为类似数组的对象,但它不是一个实际的数组。我对jQuery不太熟悉,所以我不能具体说明,我经常将jQuery对象视为数组。recursiveIterate函数对我很有帮助,因为我不擅长递归, thanks@megas:第一个示例将为您提供一个平面阵列;第二个可用于创建数组数组(未演示)。