Найдите тег и поместите слово в элемент с помощью jQuery

#javascript #jquery

#javascript #jquery

Вопрос:

Чего я хочу:

если внутри тега <li> нет тега <a> , тогда — вставьте слово «Empty» в <div class="tooltip"> </div> .

Как я могу сделать это с помощью jQuery?

 <ol>
    <li><input name="hotel_id[]" value="14" style="display:none;">
    <div class="tooltip" style="top: 439px; left: 717px; display: none; ">
    </div>
    <a href="" class="tool_tip" title="ok">Hello</a></li>

    <li><input name="hotel_id[]" value="5" style="display:none;">
    <div class="tooltip" style="opacity: 0.9; top: 439px; left: 717px; display: none; ">
    </div>
    <a href="" class="tool_tip" title="">How</a></li>

    <li><input name="hotel_id[]" value="4" style="display:none;">
    <div class="tooltip" style="top: 439px; left: 717px; display: none; opacity: 0.9; ">
    </div>
    <a href="" class="tool_tip" title="">Are</a></li>

    <li><input name="hotel_id[]" value="3" style="display:none;">
    <div class="tooltip" style="opacity: 0.9; top: 439px; left: 717px; display: none; ">
    </div>
    <a href="" class="tool_tip" title="">Help</a></li>

    <li><input name="hotel_id[]" value="2" style="display:none;">
    <div class="tooltip" style="top: 439px; left: 717px; display: none; ">
         // I want append here word "Empty" that there is not tag a in li
    </div></li>

    <li><input name="hotel_id[]" value="1" style="display:none;">
    <div class="tooltip" style="top: 439px; left: 717px; display: none; ">
         // I want appen here word "Empty" that there is not tag a in li
    </div></li>
</ol>
  

Ответ №1:

посмотрите после :not и :has:

 $("li:not(:has(a))").find(".tooltip").html("Empty").removeAttr("style");
  

Я удаляю атрибут style в .tooltip, если вам это не нужно, просто измените его на show() вместо того, чтобы показывать .tooltip:

 $("li:not(:has(a))").find(".tooltip").html("Empty").show();
  

Демонстрация: http://jsbin.com/uyuwoy/edit

Ответ №2:

Это сработало бы:

 $('ol li').not(':has(a)').find('.tooltip').html('Empty');