如何解决图片宽度*高度总大小大于40000在jquery中不在表内
$(\"img\").load(function(){
var width = $(this).width();
var height = $(this).height();
if (width * height > 40000) {
}});
我有这段代码,我想突出显示一个大于40,000像素的图像,如果该图像不在表格中。我知道使用has()仅获取后代。使用load(function()在这里不正确吗?
解决方法
如果只想选择元素,则可以使用选择器:
$images = $(\'img:area(40000)\').not(\'table *\');
当然,您应该问,wtf是:area(40000)
吗?
干得好:
$.expr[\':\'].area = function(element,index,meta,stack){
var $ele,size,area;
$ele = $(element);
size = parseInt( meta[3] );
area = $ele.width() * $ele.height();
return area > size;
};
再花一点时间,您可以扩展自定义选择器以获取第二个参数,以便可以以:area(40000,lt)
样式语法使用>
,<
,==
等。
, 您可以查看其parents
:
if($(this).parents(\'table\').length > 0) {/*in a table*/}
因此,在您的代码中:
$(\"img\").load(function () {
var width = $(this).width();
var height = $(this).height();
if (width * height > 40000) {
if ($(this).parents(\'table\').length > 0) {
/* in a table */
}
else {
/* NOT in a table */
}
}
});
, 我猜您的问题是:\“如何从<table>
中检测元素是否为子元素?
如果是这样,您可以这样做:
if ( (width * height > 40000) && !($(this).closest(\'table\').length) ) {
}
那将爬上DOM并检查父级列表中是否有任何“ 11”节点。如果搜索不成功,则jQuery集为空,因此其长度为0。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。