Jquery 找出图像是水平的还是垂直的

Jquery 找出图像是水平的还是垂直的,jquery,width,image,Jquery,Width,Image,我有多个图像,想知道每个图像是水平的还是垂直的,并为其添加一个类,以便我可以相应地设置样式 我尝试了多种方法,包括: if ($(".img").width() > $(".img").height()) { $(this).addClass("horizontal"); } 我做错了什么?谢谢大家! $.img.width返回一个数组。尝试在每个数组中限制一项,或在每个块中运行代码 $this也不会有图像的上下文 $(".img").each(function() { if ($(t

我有多个图像,想知道每个图像是水平的还是垂直的,并为其添加一个类,以便我可以相应地设置样式

我尝试了多种方法,包括:

if ($(".img").width() > $(".img").height()) {
$(this).addClass("horizontal");
}

我做错了什么?谢谢大家!

$.img.width返回一个数组。尝试在每个数组中限制一项,或在每个块中运行代码

$this也不会有图像的上下文

$(".img").each(function() {
 if ($(this).width() > $this.height()) {
  $(this).addClass(".horizontal");
 }
});

$.img.width返回一个数组。尝试在每个数组中限制一项,或在每个块中运行代码

$this也不会有图像的上下文

$(".img").each(function() {
 if ($(this).width() > $this.height()) {
  $(this).addClass(".horizontal");
 }
});

由于$this,您的代码无法工作。这不是指向此处的image元素,而是指向范围的最新实例

尝试使用jQuery每个循环遍历所有图像元素,然后有条件地添加所需的类

$("img").each(function(){
    var $this = $(this);
    if ($this.width() > $this.height()) {
        $this.addClass("horizontal");
    }
});
如果所有图像元素都有class.img,那么可以使用类选择器

$(".img").each(function(){
    var $this = $(this);
    if ($this.width() > $this.height()) {
        $this.addClass("horizontal");
    }
});
或者,您可以使用jqueryfilter方法过滤宽度大于高度的所有图像,然后立即添加所需的类

$(".img").filter(function()
    var $this = $(this);
    return $this.width() > $this.height();
}).addClass("horizontal");
.filter-将匹配元素集减少为与选择器匹配或通过函数测试的元素集

如果在页面加载时执行此操作,请确保在窗口加载事件中执行此代码,这将确保加载所有图像

$(window).load(function(){
     $(".img").each(function(){
        var $this = $(this);
        if ($this.width() > $this.height()) {
            $this.addClass("horizontal");
        }
     });
});

由于$this,您的代码无法工作。这不是指向此处的image元素,而是指向范围的最新实例

尝试使用jQuery每个循环遍历所有图像元素,然后有条件地添加所需的类

$("img").each(function(){
    var $this = $(this);
    if ($this.width() > $this.height()) {
        $this.addClass("horizontal");
    }
});
如果所有图像元素都有class.img,那么可以使用类选择器

$(".img").each(function(){
    var $this = $(this);
    if ($this.width() > $this.height()) {
        $this.addClass("horizontal");
    }
});
或者,您可以使用jqueryfilter方法过滤宽度大于高度的所有图像,然后立即添加所需的类

$(".img").filter(function()
    var $this = $(this);
    return $this.width() > $this.height();
}).addClass("horizontal");
.filter-将匹配元素集减少为与选择器匹配或通过函数测试的元素集

如果在页面加载时执行此操作,请确保在窗口加载事件中执行此代码,这将确保加载所有图像

$(window).load(function(){
     $(".img").each(function(){
        var $this = $(this);
        if ($this.width() > $this.height()) {
            $this.addClass("horizontal");
        }
     });
});
你的图片有img类吗?如果没有,您可以使用$'img'选择所有图像

试试看,每个:

你的图片有img类吗?如果没有,您可以使用$'img'选择所有图像

试试看,每个:

$.img返回类为img的元素数组。如果你一次只做一个,它就会起作用

请参见此处的示例:

$。img使用类img返回元素数组。如果你一次只做一个,它就会起作用


请参见此处的示例:

如果它没有在图像上为您提供正确的宽度/高度,则可能是它在加载图像之前正在计算width.height。要做到这一点,您只需将代码包装在$.'img'.loadfunction{};这将在加载图像后运行匿名函数中的代码

这将使您的代码看起来像:

$(".img").load(function(){
    if ($(this).width() > $(this).height()) {
        $(this).addClass("horizontal");
    }
});
但是,如果要对多个图像执行此操作,则需要将其包装到每个块中:

$(".img").each(function() {
    $(this).load(function(){
        if ($(this).width() > $(this).height()) {
            $(this).addClass("horizontal");
        }
    });
});

尽管一些海报正确地指出,当前代码使用的是未定义的this

如果它没有在图像上为您提供适当的宽度/高度,则可能是它在加载图像之前正在计算width.height。要做到这一点,您只需将代码包装在$.'img'.loadfunction{};这将在加载图像后运行匿名函数中的代码

这将使您的代码看起来像:

$(".img").load(function(){
    if ($(this).width() > $(this).height()) {
        $(this).addClass("horizontal");
    }
});
但是,如果要对多个图像执行此操作,则需要将其包装到每个块中:

$(".img").each(function() {
    $(this).load(function(){
        if ($(this).width() > $(this).height()) {
            $(this).addClass("horizontal");
        }
    });
});

尽管有一些海报正确地指出,当前您的代码使用的是未定义的图像,但您如何确定图像是水平还是垂直的?比较尺寸是否足以确定图像是水平的还是垂直的?如何确定图像是水平的还是垂直的?比较尺寸是否足以让你决定它是水平的还是垂直的?这应该对你有用。高度和宽度函数将返回包括边框和边距在内的完整尺寸。您还可以进行选择,并使用常规java脚本调用来获取没有边距或边框的高度和宽度。别忘了使用jQueryAPI来查找信息,它在过去对我非常有帮助。之前有人问过类似的问题,你可以将它与@shankarsangli的答案结合使用,你是最好的!!最后一个成功了。这是另一个问题——宽度总是返回0。我不明白为什么,因为我用文件包住了。准备好了吗,但我想这更有效非常感谢!这应该对你有用。高度和宽度函数将返回包括边框和边距在内的完整尺寸。您也可以选择并使用regula
java脚本调用以获取没有边距或边框的高度和宽度。别忘了使用jQueryAPI来查找信息,它在过去对我非常有帮助。之前有人问过类似的问题,你可以将它与@shankarsangli的答案结合使用,你是最好的!!最后一个成功了。这是另一个问题——宽度总是返回0。我不明白为什么,因为我用文件包住了。准备好了吗,但我想这更有效非常感谢!