Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在生成的内容上使用width()获取宽度_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在生成的内容上使用width()获取宽度

Javascript 在生成的内容上使用width()获取宽度,javascript,jquery,html,Javascript,Jquery,Html,jQuery方法.width()用于获取生成元素的宽度,如下所示: html: <div class='row-fluid' id='photo-preview'></div> javascript: for(i = 0;i < 4;i++){ var imageSpan = "<div class='span3' id='span_" + i + "'><img src='" + images[i] +"'></div&g

jQuery方法
.width()
用于获取生成元素的宽度,如下所示:

html: 
<div class='row-fluid' id='photo-preview'></div>
javascript:
 for(i = 0;i < 4;i++){
    var imageSpan = "<div class='span3' id='span_" + i + "'><img src='" + images[i] +"'></div>"
    $('#photo-preview').append(imageSpan);
    var w = $('#span_' + i).width(); 
    console.log(w);
  }
html:
javascript:
对于(i=0;i<4;i++){
var imageSpan=“”
$(“#照片预览”).append(imageSpan);
var w=$('#span'+i).width();
控制台日志(w);
}
但是它得到了不正确的宽度值。它是百分比的值,而不是像素。例如,
w
应该是400(400px),但是js得到了80(80%)

我认为问题可能是因为元素是动态生成的。在控制台中,当加载所有元素时,我可以使用
.width()
获得正确的值

有什么解决方法吗?

尝试使用

这是我做的一把非常愚蠢的小提琴。我将宽度设置为80%。如果你去控制台,你会看到像素宽度(448像素)


您必须等待图像的加载事件,然后才能获得正确的高度

var img = '<img src="img_path.jpg">';
$(img)
    .load(function() {
        console.log("width", $(this).width());
    })
    .appendTo('#photo-preview');
var-img='';
美元(img)
.load(函数(){
log(“width”,$(this.width());
})
.appendTo(“#照片预览”);
编辑:要与您的示例匹配:

html: 
<div class='row-fluid' id='photo-preview'></div>
javascript:
 for(i = 0;i < 4;i++){
    var img = "<img src='" + images[i] +"'>";
    $(img)
        .load(function() {
            console.log("width", $(this).width());
        })
        .appendTo("<div class='row-fluid' id='photo-preview'>")
        .appendTo('#photo-preview');

  }
html:
javascript:
对于(i=0;i<4;i++){
var img=“”;
美元(img)
.load(函数(){
log(“width”,$(this.width());
})
.附录(“”)
.appendTo(“#照片预览”);
}

在附加content@Eruthx但它不起作用。
.width()
总是以像素为单位给出宽度。是否确定元素的宽度未设置为80像素?有机会看到演示吗?你能发布css代码吗?如果span的宽度基于其中图像的宽度,你可能需要在css中将宽度设置为span,否则你必须等待图像加载。
html: 
<div class='row-fluid' id='photo-preview'></div>
javascript:
 for(i = 0;i < 4;i++){
    var img = "<img src='" + images[i] +"'>";
    $(img)
        .load(function() {
            console.log("width", $(this).width());
        })
        .appendTo("<div class='row-fluid' id='photo-preview'>")
        .appendTo('#photo-preview');

  }