javascript - 图像加载仅加载最后一张图像

标签 javascript

//javascript
var img_prev=document.querySelectorAll('.img_prev_save');
img_previewer(img_prev);

function img_previewer(elem){
    if(!document.querySelector('.img_preview'))
    {
        var new_div=document.createElement('DIV');
        new_div.setAttribute('class','img_preview');
        var new_img=document.createElement('IMG');

        console.log(elem);
        for(var i=0;i<elem.length;i++){
            var select=elem[i];

            if(select.value!=null ||select.value!='')
            {
                var img_link=select.value;
                var img_arr=img_link.split(',');
                //console.log(img_arr);
                for(var j=0;j<img_arr.length;j++){
                    new_img.src='filemanager/'+img_arr[j];
                    new_div.appendChild(new_img);

                    elem[i].parentNode.insertBefore(new_div,elem[i]);  
                }
            }

        }
    }

    //elements with .img_prev_save
    <input type="hidden" class="img_prev_save" id="feat_img" name="feat_img" value="uploads/1436093205.jpg">
    <input type="hidden" class="img_prev_save" id="gall_imgs" name="gall_imgs" value="uploads/fireworks.png,uploads/1435455457.jpg">

脚本循环显示正在处理的每个值。但实际输出只是最后一张图片“uploads/1435455457.jpg”。我似乎找不到我做错了什么。帮助我!!!

最佳答案

检查此代码。您正在重写您的 new_img.src。那是因为 createElement('IMG') 创建了一个 img object :

Create an Image Object: You can create an element by using the document.createElement() method [1]

    for(var i=0;i<elem.length;i++){
        var select=elem[i];
        var img_link=select.value;
        var img_arr=img_link.split(',');

        for(var j=0;j<img_arr.length;j++){
          var new_img=document.createElement('IMG');
          new_img.src=img_arr[j];
          new_img.width = 100;
          new_div.appendChild(new_img);
          elem[i].parentNode.insertBefore(new_div,elem[i]);
        }
    }

地址:http://plnkr.co/edit/2B0V2z1q58MnlGgvRSZd

//javascript
var img_prev=document.querySelectorAll('.img_prev_save');
img_previewer(img_prev);

function img_previewer(elem){
    if(!document.querySelector('.img_preview'))
    {
        var new_div=document.createElement('DIV');
        new_div.setAttribute('class','img_preview');

        for(var i=0;i<elem.length;i++){
            var select=elem[i];
            var img_link=select.value;
            var img_arr=img_link.split(',');
            
            for(var j=0;j<img_arr.length;j++){
              var new_img=document.createElement('IMG');
              new_img.src=img_arr[j];
              new_img.width = 100;
              new_div.appendChild(new_img);
              elem[i].parentNode.insertBefore(new_div,elem[i]);
            }
        }
    }
}

Plunker: http://plnkr.co/edit/2B0V2z1q58MnlGgvRSZd
<!DOCTYPE html>
<html>
<head></head>
<body>
<input type="hidden" class="img_prev_save" id="feat_img" name="feat_img" value="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Tetris_Z.svg/500px-Tetris_Z.svg.png" />
<input type="hidden" class="img_prev_save" id="gall_imgs" name="gall_imgs" value="https://upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Tetris_S.svg/1280px-Tetris_S.svg.png,https://upload.wikimedia.org/wikipedia/commons/9/91/Tetris_T.svg" />
</body></html>

[1]http://www.w3schools.com/jsref/dom_obj_image.asp

关于javascript - 图像加载仅加载最后一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252854/

相关文章:

javascript - 使用 jQuery 确定单击了哪个元素 ID 或类?

javascript - JQuery - 检测对 CSS 'display: table-row-group' 的支持

javascript - 在 PhantomJS 和 Python 中伪造 Flash 插件信息

javascript - 移动 HTML5 Canvas 元素

php - 是否有可以从共享主机环境实际运行的任何 PHP(或类似)版本的 Google Caja?

javascript - angularjs $compile 错误了 iframe 上的 onload 事件

javascript - 如果 Inputs 上有值,则移除 Disable 属性

javascript OOP - 不是函数

javascript - 永久清除 Canvas 中的绘图

javascript - Javascript 中的员工休假日期计算