检查元素是否不存在并附加它

时间:2010-06-25 16:36:23

标签: jquery

我想选择所有没有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>

结果 - &gt;

  <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>

非常感谢

2 个答案:

答案 0 :(得分:9)

您可以使用选择器使用:not():has()检查是否存在,并附加到这些,如下所示:

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

只需替换:not(:has(selector))内的选择器即可查找您想要的内容.append()

答案 1 :(得分:1)

这应该接近:

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