在数组中的不同位置添加div的子节点

时间:2015-05-24 16:52:46

标签: javascript jquery arrays

我需要添加父div的子元素的数组道具,如下所示:

<div>
<img id="1">
<img id="2">
<img id="3">
<img id="4">
</div>

所以在数组中它应该是a = [1,2,3,4];

到目前为止我做了什么:

lengthOfSmallImgs = element.children('div').children('img').length;
        for (var i = 0; i < lengthOfSmallImgs; i++) {
            tags = [];
            tags[i] = element.children('div').children('img');
            console.log(tags[i]);
        }

但不幸的是,控制台看起来像是:a=[1, undefined, undefined, undefined]a[0] = [img#1, img#2, img#3, img#4, prevObject: x.fn.x.init[1], context: a].

我哪里错了?

3 个答案:

答案 0 :(得分:1)

tags[i] = element.children('div').children('img');

在这一行。如果这个element.children('div').children('img');返回一个数组,因为你在第一行检查它的长度,正确的方法应该是这样的tags[i] = element.children('div').children('img')[i];

答案 1 :(得分:1)

问题是:

webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    });

而不是:

tags[i] = element.children('div').children('img');

答案 2 :(得分:0)

初始化循环内的数组。 放

tags = [];
在for循环之外

编辑:完整代码应如下所示:

lengthOfSmallImgs = element.children('div').children('img').length;
tags = [];
for (var i = 0; i < lengthOfSmallImgs; i++) {
    tags[i] = element.children('div').children('img')[i].id;
}
console.log(tags); // Outputs Array ["1", "2", "3", "4"]