使用JavaScript实现图像宽度

Ser*_*Amo 5 javascript

我有下一个功能:

function setImagesWidth(id,width) {
    var images = document.getElementById(id).getElementsByTagName("img");
    for(var i = 0; i < images.length;i++) {
        // If the real width is bigger than width parameter
            images[i].style.width=width;    
        //}         
    }       
}
Run Code Online (Sandbox Code Playgroud)

我想只在图像实际宽度大于属性值时才将所有img标签的css width属性设置为特定值.如果可能的话,我想要一个不使用任何特定框架的解决方案.


images[i].offsetWidth对于109px宽度的图像返回111.这是因为每边边界1px?

Dom*_*nic 1

@Sergio del Amo:确实,如果您查看我的链接,您会看到您想要的clientWidth

@Sergio del Amo:不幸的是,你不能接受你自己的答案。但是“px”后缀中确实有一个无关的句点,所以让我们继续这个,包括更改clientWidth

// width in pixels
function setImagesWidth(id, width)
{
    var images = document.getElementById(id).getElementsByTagName("img");
    var newWidth = width + "px";
    for (var i = 0; i < images.length; ++i)
    {
        if (images[i].clientWidth > width)
        {
            images[i].style.width = newWidth;
        }                       
    }
}
Run Code Online (Sandbox Code Playgroud)