我有以下功能:
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/