15

IE、Chrome、SafariでclientWidth / Heightが0を返すのはなぜですか?しかし、FirefoxとOperaでは問題なく動作します。私はこのコードを使用しました:

$(document).ready(function () {

    var imgs = document.getElementsByTagName('img');
    var imgLength = imgs.length;

    for (var i = 0; i <= imgLength - 1; i++) {

        var imgWidth = imgs[i].clientWidth;
        var imgHeight = imgs[i].clientHeight;

        $('img').eq(i).attr({
            width: imgWidth,
            height: imgHeight
        });

        console.log(imgWidth);
    }

    console.log(imgLength);

});

何か案が?ありがとう。

私はclientwidthでwindow.loadを試してみましたが、Firefox、Chrome、Operaでは問題なく動作しますが、他の人はそうではありません

4

3 に答える 3

-1

doctype を変更してみてください。
http://forums.asp.net/post/1515655.aspx
よくわかりませんが、この問題を解決しました。

于 2013-01-20T16:49:00.520 に答える
-3

余白や境界線などの寸法を取得する場合は、JQuery関数outerWidthとを使用してみてくださいouterHeight。クロスブラウザの違いに注意する必要があります。http://api.jquery.com/outerwidth/

要素の内容の寸法のみ(余白、境界線、パディングなし)を取得する場合は、とを使用widthheightます。http://api.jquery.com/width/

于 2012-06-21T07:12:57.773 に答える
-6

JQuery を使用して高さと幅を取得すると、すべてのブラウザーで正常に動作するため、コードは次のようになります。

$(document).ready(function() {


     var imgs = $('img');
     var imgLength = imgs.length;

     for(var i=0; i<= imgLength-1;i++){

         var imgWidth = imgs[i].width();
         var imgHeight = imgs[i].height();

         $('img').eq(i).attr({width:imgWidth, height: imgHeight});

         console.log(imgWidth);
     }

     console.log(imgLength); 

});
于 2012-06-21T07:07:23.593 に答える