2015-06-16 3 views
0

Как я могу проверить каждый div.item, чтобы увидеть, если он делает не содержать span.premium, а затем добавить новый срок (давайте называть это span.free) в div.screenshot?Добавить элемент к другому ребенку, если родитель не содержит

<div id="video1" class="item"> 
 
    <div class="screenshot"> 
 
    <img src="image1.png" /> 
 
    </div> 
 
    <h3>I am Video 1</h3> 
 
</div> 
 
<div id="video2" class="item"> 
 
    <div class="screenshot"> 
 
    <img src="image2.png" /> 
 
    </div> 
 
    <h3>I am Video 2 <span class="premium">P</span></h3> 
 
</div> 
 
<div id="video3" class="item"> 
 
    <div class="screenshot"> 
 
    <img src="image3.png" /> 
 
    </div> 
 
    <h3>I am Video 3</h3> 
 
</div>

+0

Каков ваш код JS? – briansol

ответ

0

С одной строки кода:

$('div.item:not(:has(span.premium))').find('.screenshot').append('<span class="free">NEW SPAN</span>'); 

DEMO: https://jsfiddle.net/wxL2ujf8/

+1

Спасибо! Работает как шарм. –

0

Вы можете использовать :has(), :not() и each() как

$('div.item:not(:has(span.premium))').each(function(){ 
    $('div.screenshot').append('<span class="free"></span>') 
}); 
Смежные вопросы