jquery每个和onload问题

时间:2010-08-30 10:48:36

标签: jquery image

我有以下代码

$(function () {
    $.post("fetch_data.php?url="+$('#url').val(), { }, function(response){
        var arrValues = [ "path/to/img1", "path/to/img2", "path/to/img3", "path/to/img4" ]; //output from php
        var img = new Image();
        $.each(arrValues, function( intIndex, objValue ) {
            img.src = objValue;
            img.onload = function() {
            alert('height: ' + img.height + ' width: ' + img.width);
            }
        });
    });
});

我是javascript / jquery的新手,此代码仅返回最后一个(“path / to / img4”)图像的高度/宽度。

如何让它返回数组的所有图像和宽度?

2 个答案:

答案 0 :(得分:1)

我想你必须创建四个图像元素......你必须稍微修改你的代码

尝试下面的代码,

$(function () {
    $.post("fetch_data.php?url="+$('#url').val(), { }, function(response){
        var arrValues = [ "path/to/img1", "path/to/img2", "path/to/img3", "path/to/img4" ]; //output from php

        $.each(arrValues, function( intIndex, objValue ) {
        var img = new Image(); //creating number of Image Elements equal to arrValues length
            img.src = objValue;
            img.onload = function() {
            alert('height: ' + img.height + ' width: ' + img.width);
            }
        });
    });
});

答案 1 :(得分:0)

由于参数img是在循环之外定义的,它只会指向最后一个img u create ..

尝试在$ .each循环中声明img ...

并在警告中替换img。