代码之家  ›  专栏  ›  技术社区  ›  dennismonsewicz

使用jquery将子元素推送到全局数组中

  •  3
  • dennismonsewicz  · 技术社区  · 14 年前

    我正在编写一个脚本,它将把每个子元素推入一个全局数组(稍后在我的脚本中处理),但出于某种原因,它实际上并没有将元素推入数组。

    代码:

    var childElements=new Array();    
    function getChildren(elem){
                $(elem).children().each(function(index, value){
                    childElements[index] = $(this);
                });
            }
    

    我做错什么了吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   user113716    14 年前

    因为jquery对象是类似数组的对象,所以我可能只是使用它,而不是创建单独包装的对象数组。

    var childElements=$(elem).children();
    

    如果要添加更多元素,可以 .push() 总是 .add() 新元素。这还将确保您没有重复项。

    var childElements= $();    
    function getChildren(elem){
        childElements = childElements.add( $(elem).children() );
    }
    
        2
  •  2
  •   Saul    14 年前
    $.each($(elem).children(), function(index, value){ 
                    childElements[index] = $(this); 
                });
    

    编辑: 帕特里克说得对。如果只需要一个子对象数组,那么 var childElements = $('selector').children(); 就够了。您不需要该函数,除非您希望该数组的值包含(组合)来自子元素的特定属性。