if语句中的jQuery属性选择器

时间:2014-04-23 18:18:52

标签: jquery

我一直试图让我的if语句工作,但我找不到解决方案。感谢。

<div class="imgContain">
    <img class="finalimg" alt="link" src="website.com/imga546.jpg">
    <img class="finalimg" alt="green" src="website.com/imga645.jpg">
    <img class="finalimg" alt="cap" src="website.com/imga6786.jpg">
    <img class="finalimg" alt="sarge" src="website.com/imga31234.jpg">
</div>

伪代码

jQuery if(something = to any of my alt attributes){do...}
//altattr is equal to an attribute that may match the alt attribute

ex:if('link' == $('img[class="finalimg"]').attr('alt'))

 if(altattr == $('img[class="finalimg"]').attr('alt')){
        //do stuff
        }

我必须先选择imgContain类来使这项工作正常吗? 我知道这只适用于我的第一个元素,但我试图让if语句先工作。

4 个答案:

答案 0 :(得分:1)

当你甚至不需要修复if语句时,你太忙了。

$('.finalimg[alt="link"]').doSomething();

$('.finalimg[alt="link"]').each(function(){
    // do something with this...
    $(this).doSomething();
});

并使用变量代替“link”,使用字符串连接。

$('.finalimg[alt="' + altattr + '"]').doSomething();

答案 1 :(得分:0)

看看这个 - http://jsfiddle.net/jayblanchard/m4Lk6/

if(0 !=  $('img[class="finalimg"][src="website.com/imga546.jpg"]').length) {
    $('body').append('<div>I found the image!</div>');
}

我在这里测试是否存在具有适当类和源的图像元素。如果存在则其长度为1,否则为0。

编辑:基于以下事实做出改变:如果页面中存在多个这样的选择器,则选择器可以返回大于1的数字。

答案 2 :(得分:0)

这将使用类finalimg循环遍历所有图像,并且一旦找到一个匹配(在本例中为最后一个img),它将发出警告的altattr变量。

var altattr = 'sarge';

$("img[class='finalimg']").each( function(index, element){
    if(altattr == $(this).attr('alt')){
        alert("found");
    }
});

答案 3 :(得分:0)

如果没有任何长度为零,您可以尝试使用指定的alt属性选择图像。

if($('img[class="finalimg"][alt="' + altattr +  '"]').length > 0){
        //do stuff
}

这与使用类选择器相同:

if($('img.finalimg[alt="' + altattr +  '"]').length > 0){
        //do stuff
}

DEMO