13

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 添加一个标题。

4

6 回答 6

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

jQuery 空选择器

于 2012-05-04T12:59:16.247 回答
5
$(".child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});
于 2012-05-04T12:56:47.563 回答
5
$("#parent .child").each(function() {
    if ($.trim($(this).html()).length > 0 )
        $(this).prepend('<h1>title</h1>');
});
于 2012-05-04T13:03:35.717 回答
1

改为使用长度检查。

$(".child").each(function() {
    if ($(this).html().length)
        $(this).prepend('<h1>title</h1>');
});
于 2012-05-04T12:58:26.597 回答
0

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

$(this).html()

你的小提琴 http://jsfiddle.net/bCKGV/

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

于 2012-05-04T13:02:07.240 回答
0

试试这个:

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

或者:

$("#parent .child").each(function() {
    if ($(this).html())
        $(this).prepend('<h1>title</h1>');
});
于 2012-05-04T13:08:32.997 回答