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

Jquery 如果元素不为空,则添加内容,jquery,Jquery,HTML: 有内容的Div 我想要的结果是: <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" /></di

HTML:


有内容的Div
我想要的结果是:

<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和内容
标题
我的jQuery代码:

<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>
$(".child").each(function() {
    if ($(this).html != '')
        $(this).prepend('<h1>title</h1>');
});
$(“.child”)。每个(函数(){
如果($(this.html!='')
$(this.prepend('title');
});
我的jQuery代码的结果:

<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>
$(".child").each(function() {
    if ($(this).html != '')
        $(this).prepend('<h1>title</h1>');
});

标题
标题Div和内容
标题
因此,我只想为某个类中不是空的每个div添加一个标题。

$(.child”).each(function(){
<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>
if($(this.html()) $(this.prepend('title'); });
使用长度来检查

$(".child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});
$(“.child”)。每个(函数(){
if($(this.html().length)
$(this.prepend('title');
});
$(“.child:not(:empty)”).prepend('title');

您得到了一个未关闭的
,要获得选择器的html,您使用的是函数,而不是属性:

$(".child:not(:empty)").prepend('<h1>title</h1>');
你的小提琴

地雷
$(“#parent.child”)。每个(函数(){
if($.trim($(this.html()).length>0)
$(this.prepend('title');
});
试试这个:

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

$(“#parent.child”)。每个(函数(){
if($(this.html())
$(this.prepend('title');
});

你关心文本节点,还是只关心元素?如果
。child
元素包含子元素但没有文本(例如
img
元素),则会失败。@jamesalardice,很好,请查看更新并查看您的投票。哎呀!好的,可以使用
not
来检查元素是否为空<代码>$(“.child:not(:empty)”).prepend('title')更正了答案,这很有效!它不适用于\r\n,但如果您删除了中断符,它确实可以使用感叹号检查是否为空
if(!$(this.html())
 $(".child:not(:empty)").prepend('<h1>title</h1>');
$("#parent .child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});