一直试图找到答案,但似乎无法理解它:
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。
答案 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);