如果元素不为空,则添加内容

时间:2012-05-04 12:55:02

标签: jquery

HTML:

<div id="parent"> 
  <div class="child"></div> 
  <div class="child"><p>Div with content<p></div> 
  <div class="child"><img scr="pic.png" alt="Div with picture" /></div>
</div>

我想要的结果:

<div id="parent"> 
  <div class="child"></div> 
  <div class="child"><h1>title</h1><p>Div with content<p></div> 
  <div class="child"><h1>title</h1><img scr="pic.png" alt="Div with picture" /></div>
</div>

我的jQuery代码:

$(".child").each(function() {
    if ($(this).html != '')
        $(this).prepend('<h1>title</h1>');
});

我的jQuery代码的结果:

<div id="parent"> 
  <div class="child"><h1>title</h1></div> 
  <div class="child"><h1>title</h1><p>Div with content<p></div> 
  <div class="child"><h1>title</h1><img scr="pic.png" alt="Div with picture" /></div>
</div>

所以我只想为某个不是空的类的每个div添加一个标题。

6 个答案:

答案 0 :(得分:20)

$(".child:not(:empty)").prepend('<h1>title</h1>');

jQuery empty selector

答案 1 :(得分:5)

$(".child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});

答案 2 :(得分:4)

$("#parent .child").each(function() {
    if ($.trim($(this).html()).length > 0 )
        $(this).prepend('<h1>title</h1>');
});

答案 3 :(得分:1)

使用长度来检查。

$(".child").each(function() {
    if ($(this).html().length)
        $(this).prepend('<h1>title</h1>');
});

答案 4 :(得分:0)

你有一个未闭合的<p>并且要获得选择器的html,你使用的是函数,而不是属性:

$(this).html()
你的小提琴 http://jsfiddle.net/bCKGV/

http://jsfiddle.net/bCKGV/1/

答案 5 :(得分:0)

试试这个:

 $(".child:not(:empty)").prepend('<h1>title</h1>');

OR:

$("#parent .child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});