图片宽度*高度总大小大于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。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...