jQuery:包装新创建的html

THX*_*138 5 jquery html-manipulation

我即时创建HTML代码段:

$('<span/>').addClass(spanClass)
Run Code Online (Sandbox Code Playgroud)

是否有一种jQuery方法将此代码包装进去<div>

在语义上我想做:

$('<span/>').addClass(spanClass).wrap($('<div/>').addClass(divClass))
Run Code Online (Sandbox Code Playgroud)

这不起作用.所以我只想要遵循jQuery-idiomatic版本:

function wrap(what, with) { return $(with).append(what); }
Run Code Online (Sandbox Code Playgroud)

use*_*716 11

请记住,你的jQuery对象仍引用新的<span>,所以如果你想有一个链接的方法插入,则<div>不会被插入.

要克服这个问题,您需要先遍历新的父级<div>.

    // Traverse up to the new parent in order to append the <div> and <span>
$('<span/>').addClass(spanClass).wrap($('<div/>').addClass(divClass))
            .parent().appendTo('body');
Run Code Online (Sandbox Code Playgroud)

你也可以这样写:

$('<span/>').addClass(spanClass).wrap('<div/>')
            .parent().addClass(divClass).appendTo('body');
Run Code Online (Sandbox Code Playgroud)

  • aha,`.wrap()`确实返回*wrapped*对象.我的坏,它确实有效. (2认同)