jquery将宽度设置为变量值

时间:2010-09-20 16:00:14

标签: jquery

有人可以解释这个片段有什么问题吗?

我希望得到div中所有图像的宽度。

var totalwidth = $("#imagecontainer > img").width();
$("#imagecontainer").width(totalwidth);
抱歉,认为这只是一个语法问题 (联合国)这里的工作实例:
http://jsfiddle.net/TZ2nT/3/
容器div由于某种原因不接受该值?

2 个答案:

答案 0 :(得分:5)

你试过这个吗?

var width = $("#imagecontainer  img:first").width();
var totalWidth = width * $("#imagecontainer  img").length;
console.log(totalWidth);

修改

$(function() {
  var totalwidth = 0;
  var arey = [];
  $('#imagecontainer img').each(function() {
    var width = $(this).width();
    width = parseInt(width);
    arey.push(width);
  });

  for(var i in arey) {
   totalwidth +=arey[i];
  }
  $('#imagecontainer').width(totalwidth);
  $('#readout').html(totalwidth);
});

在此处测试 http://jsbin.com/ayira3

答案 1 :(得分:1)

你还没有真正描述过什么是错的,但我猜你在图像完全下载之前运行了代码,所以它还没有宽度。< / p>

如果是这种情况,请尝试:

$("#imagecontainer > img").load(function() {
    var $th = $(this);
    $th.parent().width( $th.width() );
});

请记住,jQuery's .ready() method 等待图片加载。您可以使用<img>替换$(window).load(function() {... 元素。这样,在您实际拥有图像之前,代码才会运行。

如果您需要在所有图像加载后运行代码,您可以使用:

{{1}}