Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将容器div中的元素放入数组-jQuery或JavaScript_Javascript_Jquery_Html_Arrays - Fatal编程技术网

将容器div中的元素放入数组-jQuery或JavaScript

将容器div中的元素放入数组-jQuery或JavaScript,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我有一个div,其中包含许多Instagram图像,由instafeed.js插件生成。运行插件后,生成的HTML如下所示: <div id="instafeed"> <a><img /></a> <a><img /></a> <a><img /></a> etc... </div> 等 我试图找到一种方法将这个div的内容加载

我有一个div,其中包含许多Instagram图像,由instafeed.js插件生成。运行插件后,生成的HTML如下所示:

<div id="instafeed">
    <a><img /></a>
    <a><img /></a>
    <a><img /></a>
    etc...
</div>
我试图找到一种方法将这个div的内容加载到一个数组中;我相信最简单的方法就是拿标签,这很好

我对JS和jQuery都缺乏经验,这就是为什么我很难做到这一点,而且我还没有找到任何论坛帖子能够达到我希望达到的效果

到目前为止,我所要做的只是将div的内容加载到一个数组中,然后将其打印回文档,这样(在我看来)应该会将标记添加回HTML中。我尝试使用JavaScript和jQuery,但都没有成功。如果您有任何想法,我将不胜感激:

JS:

var containerDiv=document.getElementById('instafeed');
var pics=containerDiv.getElementsByTagName('img');
控制台日志(pics)//告诉我至少我有一个img数组
对于(变量i=0;i
jQuery: (如果这段代码完全错了,我真的很抱歉,我真的不太了解jQuery)

$(文档).ready(函数(){
var-pics=[];
$('#instafeed')。查找('img')。每个(函数(){
图片推送($(本));
});
对于(i=0;i
如有任何想法、提示或建议,将不胜感激

编辑: 只是为了给我的问题增加一点背景知识,避免引起更多的混乱

我正试图从一个特定于用户的Instagram订阅源中随机抽取四张图片,以便在网站上显示。instafeed.js可以只提取四张图片,并且可以将图片随机排列,但Instagram本身总是发送四张最新的图片,因此该插件每次只是将相同的四张图片的顺序随机排列


我试图让插件发送每一张图片,这些图片将进入div instafeed。我想从这里将所有包含的图像加载到一个数组中,这样我就可以随机选择四个图像在站点上显示。

JQuery代码是正确的。只有你需要的div,你需要把图像

$(document).ready(function() {
   var pics = [];

   $('#instafeed').find('img').each(function() {
      pics.push($(this));
   });

   for (i = 0; i < pics.length; i++) {
      $('div#yourDiv').append(pics[i]);
   }  

感谢所有在这方面帮助过我的人。事实证明,我的问题源于我在instafeed.js能够从Instagram中提取图像之前试图运行的查询,因此在div中找不到任何内容。我已通过设置超时解决了这一问题

对于任何感兴趣的人,为了防止将来其他人遇到类似的问题,这里是我的完整代码(我肯定这有点不雅观,但我在JS方面还是一个相对的新手)

函数陷阱(){
var-pics=[];
$('div#instafeed')。查找('img')。每个(函数(){
pics.push($(this.attr('src'));
});
减速器(4个,pics);
}
功能减速器(限位,pics){
如果(限制==未定义){
限值=4;
}
var=[];
while(gallery.length<限制){
var j=Math.floor(Math.random()*pics.length);
if(图库索引(图[j])>-1){
继续;
} 
图库推送(图[j]);
}
展览图片(画廊);
}
功能显示图片(图库){
对于(变量i=0;i
将此div的内容加载到数组中是什么意思<代码>$(“#instafeed”).find('img')
为您提供了一个数组,为什么要将它们放入另一个数组中?您只是想删除链接吗?我在上面的编辑中添加了一些额外的信息。如果服务返回最新的图像,则您无法执行检索更多图片的任务。尝试检索多个最新图像并将其随机化这是一个儿童游戏。为什么不直接执行
$('instafeed').find('img').each(function(){$('div#yourDiv').append($(this));})而不是有额外的循环?也许他想在其他时间,而不是立即进行。在这种情况下,我只需执行
var pics=$('#instafeed')。查找('img')之后OP可以使用
图片。每个
-只有一个循环,性能更好他问的答案。否则,OP还没有解释他到底需要什么。我在上面的编辑中添加了一些额外的信息。我真正想要的是一组图像,我可以从中随机选择。为了确保我做得正确,我只希望能够将数组的内容转储到页面中,这样我就知道我的数组包含了我要查找的内容。
$(document).ready(function() {
    var pics = [];

    $('#instafeed').find('img').each(function() {
        pics.push($(this));
    });

    for (i = 0; i < pics.length; i++) {
        console.log(pics[i]);
    }

});
$(document).ready(function() {
   var pics = [];

   $('#instafeed').find('img').each(function() {
      pics.push($(this));
   });

   for (i = 0; i < pics.length; i++) {
      $('div#yourDiv').append(pics[i]);
   }  
   $('#instafeed').find('img').each(function() {
      pics.push($(this).attr('src'));
   });
   console.log(pics); // returns an array of src.
function snagImages() {
    var pics = [];

    $('div#instafeed').find('img').each(function() {
        pics.push($(this).attr('src'));
    });

    reduceGallery(4, pics);
}

function reduceGallery(limit, pics) {
    if (limit === undefined) {
        limit = 4;
    }

    var gallery = [];

    while (gallery.length < limit) {
        var j = Math.floor(Math.random() * pics.length);

        if ( gallery.indexOf(pics[j]) > -1) {
            continue;
        } 

        gallery.push(pics[j]);
    }

    displayPics(gallery);
}

function displayPics(gallery) {
    for (var i = 0; i < gallery.length; i++) {
        document.getElementById('gallery').innerHTML += '<a href="' + gallery[i] + '" title="Gallery Image">' + '<img src="' + gallery[i] + '" alt="Gallery Image" />' + '</a>';
    }
}

var userFeed = new Instafeed( {
    options
});
userFeed.run();

setTimeout(function() { snagImages() }, 500);