JQuery追加()没有<img/>的DIV HTML

时间:2011-02-23 11:48:16

标签: javascript jquery html jquery-selectors

一直试图找到答案,但似乎无法理解它:

var newLayout = '<div id="blog-left"></div>' ; // This creates the layout the content will be moved to
    newLayout += '<div id="blog-right" class="nivoSlider"></div>' ;
    newLayout += '<div style="clear:both;"></div>' ;
    newLayout += '<div id="img-temp" style="display:none;"></div>' ;

$('.blog').append(newLayout); // Add the new layout

$('#blog-left').append( $('.blog p') ); // All <p>'s being added to the new layout
$('#blog-right').append( $('.blog img') ); // All <IMG>'s being added to the new layout

这项工作非常好,但是我遇到的问题不是将<p>附加到#blog-left我想要附加所有包含HTML但是减去<IMG>标签。所以HTML进入#blog-left<IMG>进入#blog-right。

我已尝试使用.html(),但#blog-left&amp; #blog-right位于包含div [{1}}。

我尝试了几件事,但是如果有的话,没有任何东西可以正常返回。那么你们中任何一个明亮的火花都有使用JQuery的解决方案吗?

提前致谢。

Sam T。

2 个答案:

答案 0 :(得分:0)

尝试使用此功能过滤掉img标记。

var $blog = $('.blog');
$blog.append(newLayout);
var $p = $blog.find("p");
var $img = $blog.find("img");
$('#blog-left').append($p);
$('#blog-right').append($img);

jsfiddle上的示例。

答案 1 :(得分:0)

我会这样做:

var $blog = $('.blog');

// first add all images to right (removes them from .blog)
var $right = $('<div id="blog-right" class="nivoSlider" />')
              .append($blog.find('img'));

// add all remaining elements from .blog to left
var $left = $('<div id="blog-left" />').append($blog.children());

var container =  '<div style="clear:both;"></div>' + 
                 '<div id="img-temp" style="display:none;"></div>';

// add the new content to .blog
$blog.append($left).append($right).append(container);