Jquery 如果元素不为空,则添加内容
HTML: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
有内容的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>');
});