javascript - hasClass() 函数未检测到——前面的函数将不会运行

标签 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>具有“cboxPhoto”类,然后运行each()函数用于检测高度和宽度,如果图像宽度大于其高度,则添加“relative”类。

我运行了错误,但没有出现任何结果。是因为我试图在同一元素内检测吗?应该有一个父元素吗?我想这可能是因为没有为 jQuery 设置图像参数来检测它,因此该函数将无法运行?

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

最佳答案

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

.hasClass('cboxPhoto')

请参阅 jQuery 文档 here

className Type: String The class name to search for.

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

不会出现任何错误,它仍然是有效的代码,但它永远找不到您正在寻找的类名

更新

查看您的代码:

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

您尚未在此行定义img

关于javascript - hasClass() 函数未检测到——前面的函数将不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34458457/

相关文章:

html - css图像定位中心

javascript - JsPlumb触摸屏

javascript - FB 登录流程导致 iOS 上的 Google 应用程序内出现空白页面

jquery - 使用 jQuery 和 JSON 时如何让我的文本区域保留换行符?

javascript - Background Size : Contain, 缩放后得到Size

带有 jQ​​uery 的 Safari 和 Firefox 中的 Javascript(严格)错误

javascript - 显示相对于其父级顶部位置的 div

javascript - 具有外部配置文件的 Vue js

javascript - 在页面加载时选择类似用户行为的 jquery 选项(实时更改事件触发)

javascript - 将 HTML 标记传递到 Handlebars 中