2013-10-22 114 views
0

我正在学习,使用使用jQuery只插入一个开始标记或结束标记

replaceWith('<section>') 

after('<section>') 

真要插入在每种情况下完整的元素:

<section></section> 

而且使用时结束标记

replaceWith('</section>') 

这样的呼叫似乎被忽略。

有什么方法来禁止这种行为?我需要在DOM中的某个点插入一个开始标记,并在另一个点插入一个结束标记。

wrapAll() 

我也无法上班。我想可能是与被包裹的东西不是所有的兄弟姐妹.....

+0

'wrapAll'可能是正确的解决方案。你可以发布一个jsfiddle来展示你的问题? –

+0

这是DOM的工作原理。这就是为什么有wrap和wrapAll方法,在调用这些函数之前,请确保查询返回期望的集合。 – undefined

+0

这结束了工作:http://jsfiddle.net/H36UE/1/示例HTML更接近地表示正在遇到的实际DOM树。 – Conando

回答

0

我不相信jquery会允许这种行为,因为这实际上会让你无效化你的标记。

处理DOM的 - 它把标签那些组“节点”。他们被归类为具有属性和价值的对象以及依赖于它们的许多其他对象。所以简单的“移动文本”结束标记的是不是一个理想的效果...

为什么不抓住所有的你在你的一半标签的“中间”要的东西......创建一个新的元素,然后把你的“填充”与附加?是这样的:

var theFilling = $('ul#theFilling'), 
    theCookieCrust = document.createElement('section'); 

$(theFilling).appendTo($(theCookieCrust)); 

$('ul#theFilling').remove(); 

$(theCookieCrust).appendTo('body'); 
+0

这就是我最终做的:http://jsfiddle.net/H36UE/1/ – Conando

相关问题