1

Javascript:

function Add(){
    var mydiv = document.getElementById("mydiv");
                var images = mydiv.getElementsByTagName("img");
                var dydiv = document.createElement("div");        


                for (var i = 0; i < images.length; i++) {              

                        var elem = document.createElement("img");
                        elem.setAttribute("src", images[i].src);
                        elem.setAttribute("height", "100%");
                        elem.setAttribute("width", "100%");
                        dydiv.appendChild(elem);

                    }
}

html:

<input type="button" onclick="Add()" value="Add"/>

    <div id="mydiv">
      <asp:Repeater id="rpt" runat="server">
        <itemtemplate>
                <div >
                    <img src='<%#Eval("img")%>' alt="No Image" />
                </div>

         </temtemplate>
       </asp:Repeater> 


         </div>

在这里,我得到了 Images 数组对象中的重复值。由于有 4 张图片,我得到 8 张图片。(顺便说一句,我不明白为什么我会得到重复 :-( )现在我想删除重复项而不进行排序。请帮帮我....

4

2 回答 2

1

希望这种从数组中删除重复项的逻辑可能会有所帮助。我不是说要复制并粘贴它。我只是想分享一下逻辑,其余的我认为您可以弄清楚。

var items = ["milk","bottle","mobile","cups","milk","screen","table", "toothpaste"];
var filteredItems= [];
$.each(items, function(i, element){
    if($.inArray(element, filteredItems) === -1) filteredItems.push(element);
});

数组 :filteredItems将包含唯一值而不对原始数组进行排序。
希望能为您服务。

于 2013-09-25T11:21:44.230 回答
0

这可能是因为当您将图像附加到文档时,图像 HTMLCollection(图像)的大小会增加。

如果我这样做var images = document.getElementsByTagName('img');了,我会得到一个 HTMLCollection,其中包含我要查找的所有元素。

如果我然后去做:

var newImage = document.createElement('img');
document.getElementsByTagName('body')[0].appendChild(newImage);

HTML 集合现在也包含新图像。

您可能想要完成的是更改已经存在的图像的高度、宽度和 src。在这种情况下,您不必创建一个新元素然后附加它,您只需循环 HTMLCollection 并更改 HTMLCollection 中元素的高度、宽度和 src。

于 2013-09-25T11:23:53.433 回答