2017-01-12 4 views
0

で画像を探す:次のように私はdivの内側にイメージを持っている名前の一部のjqueryの

<div id="testdiv"> 
    <div class=".kl"> </div> 
    <img src="../../testimage.png"/> 
</div> 

私は画像をdiv要素に存在しているかいないかどうかをテストします。 私はすべての条件に当てはまる示しているjqueryの条件をwriitenています

if ($("#testdiv").children('img').attr('src','testimage.png')) { 
alert('image found'); 
} 

if ($("#testdiv").children('img').attr('src','dummyimage.png')) { 
alert('image found'); 
} 

dummyimage.pngに存在しないので、間違っている条件「が」制御が第二の内側に起こっています"testdiv"。 divの中に存在するかどうかにかかわらず、イメージ名だけを見つける方法は?

答えて

4

そのlengthプロパティをチェックし、それが属性を設定です。あなたが与えられた値で終わる属性で検索する場合は、使用することができます

attribute-ends-with selector[name$=value-it-ends-with]):

if ($("#testdiv img[src$='testimage.png']").length) { 
    // yes, it's there 
} else { 
    // no, it isn't 
} 

もどこでもsbustringと一致しますattribute-contains selector*=代わりの$=)あります、最後だけではありません。最初に一致するのは^=です。 the documentationの詳細。

2

filter()を使用すると、指定された文字列リテラルsrcのすべての画像を除外できます。あなたのコードは、属性で検索されていない

var hasImages = $("#testdiv > img").filter(function(){ 
    return this.src.endsWith('testimage.png'); 
}).length > 0 
-3

imgのidを設定するだけです。このjqueryを使用します。

if ($('#myElement').length) { 
// it exists 
} 
0

私はむしろ属性値が提供された値であるかどうかをチェックするよりも、要素に値を設定するために.attr(key, value)試みだと思います。だからif()はイメージsrcに "dummyimage.png"をセットすることができるときは常に真を返します。これはおそらくあなたが望むものではありません。

代わりに.attr('src') == 'dummyimage.png'(または、.indexOf()または==の代わりに.indexOf()または正規表現を使用してください)。それが助けになるはずです。

1

あなたは、このように確認する必要があります:

if ($("#testdiv").children('img').attr('src').endsWith('testimage.png')) { 
    alert('image found'); 
} 

if ($("#testdiv").children('img').attr('src').endsWith('dummyimage.png')) { 
    alert('image found'); 
} 
0

チェック画像が存在するか

if($("#div").find('[name="ElementNameHere"]').length>0) 
{ 
    // image exists 
} 
else 
{ 
    // image does not exists 
} 
関連する問題