使用jQuery检测元素是否具有某个样式属性

时间:2016-02-19 00:25:42

标签: javascript jquery html if-statement

我正在编写一个脚本来检测网页上是否存在图像。这是本节的html标准格式。如果图像,则看起来像

    <div id="photo" style="display: none;">
       <img id="image" src="IMAGESOURCE" onerror="img2txt()" alt="">
    </div>    

如果存在的图像相同的html看起来像这样

    <div id="photo">
       <img id="image" src="IMAGESOURCE" onerror="img2txt()" alt="">
    </div>

现在在脚本中我正在使用它,这不起作用(或者我不会在这里:D)

  var images = ($('#photo[style*="display: none"]').length === 0 ? false : true);

    if (images) {
      $('#yes[value="Yes"]').click();
    }
    else {
      $('#no[value="No"]').click();
    }

(点击是针对我根据此图片查询填写的表单上的单选按钮)

截至目前,if / else语句正在给广播“No”点击一个应该是肯定的页面。我尝试过使用

    if (!images) {
      $('#yes[value="Yes"]').click();
    }
    else {
      $('#no[value="No"]').click();
    }

只是为了看看我的布尔值是否不正确。但是,通过这种调整,它恰好相反。任何帮助深表感谢。感谢

2 个答案:

答案 0 :(得分:1)

所以当不存在时总是display:none? jQuery有:visible的特定选择器。

var present = $("#photo").is(":visible");

答案 1 :(得分:1)

要确定图像是否可见:

<div id="mybox"></div>

参考您自己发布的代码,您可以使用:

$('#image:visible').length;

或者,避免使用不必要的属性选择器(假设var imageVisible = $('#image:visible').length, toClick = imageVisible ? 'yes' : 'no'; $('#' + toClick + '[value=' + toClick + ']').click(); 是唯一标识符:

id

参考文献: