hasClass()函数未检测 - 前一个函数不会运行

时间:2015-12-24 22:33:48

标签: javascript jquery html

我有以下功能:

var imgs = $('img');
if ($(imgs).hasClass('cboxPhoto')) {
  imgs.each(function() {
    var img = $(this);
    var width = img.width();
    var height = img.height();
    if (width < height) {
      img.addClass('relative');
    } else {
      img.removeClass('relative');
    }
  });
}

我基本上试图说明<img>是否有&#34; cboxPhoto&#34;然后运行each()函数用于检测高度&amp;宽度并添加&#34;亲属&#34;如果图像宽度大于它的高度。

我已经找错了,但什么都没有出现。是因为我试图在同一个元素内检测到吗?应该有父元素吗?我认为这可能是因为没有为jQuery设置图像参数甚至检测它,因此函数不会运行?

FIDDLE: https://jsfiddle.net/b0rL3vs4/2/

1 个答案:

答案 0 :(得分:1)

使用addClass()removeClass()hasClass()时,您不使用句号,只需使用类名ex:

.hasClass('cboxPhoto')

请参阅jQuery docs here

  

的className   类型:字符串   要搜索的类名。

$( "#mydiv" ).hasClass( "foo" )

没有错误会出现,它仍然是有效的代码,但它永远不会找到你要找的类名

更新

看你的代码:

var imgs = $('img');
if ($(img).hasClass('cboxPhoto')) {

您尚未在此行定义img