2010-06-25 101 views
1

我想選擇所有沒有IMG標籤並追加它的項目。我可以這樣做:檢查一個元素是否不存在並追加它

我該怎麼做?

<div class="test"> 
    <div class="someDummydiv"></div> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
</div> 

結果 - >

<div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 
    <div class="test"> 
    <div class="someDummydiv"></div> 
    <img src="try.gif" /> 
    </div> 

非常感謝您

回答

9

您可以使用,使用:not():has()生存檢查選擇,並追加到這些,就像這樣:

$('.test:not(:has(img))').append('<img src="try.gif" />'); 

只需更換中的選擇器去尋找你想要的.append()

+0

這是真正的清潔。我的方法也應該可以工作,並且允許對沒有圖像的元素進行額外的處理,但是一個班輪總是很好。 :) – 2010-06-25 16:41:00

1

這應該接近:

$('div.test').each(function() { 
    var $this = $(this); 
    if ($this.children('img').size() == 0) { 
    $this.append('<img src=try.gif>'); 
    } 
});