jQuery wrapAll 的行为不符合预期

标签 jquery

我试图用另一个元素包装动态创建的一系列生成元素,例如:

var innerHtmlAsText = "<li>test1</li><li>test2</li>";
var wrapper = "<ul />";

$("div#target").append($(innerHtmlAsText).wrapAll(wrapper));

我的预期结果是

<ul>
    <li>test1</li>
    <li>test2</li>
</ul>

但实际结果是:

<li>test1</li>
<li>test2</li>

li 元素未换行。在我的实例中,innerHtml 是从用户生成的模板动态生成的,并且包装器是单独提供的。如何获取内部值?

最佳答案

wrapAll返回原始 jQuery 对象,而不是新对象。所以,wrapAll返回<li> s,因为这是 wrapAll 的对象被召唤了。

试试这个:

$("div#target").append($(innerHtmlAsText).wrapAll(wrapper).parent());

关于jQuery wrapAll 的行为不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229100/

相关文章:

javascript - 自定义图像 slider

javascript - jQuery 可排序子项不会进入父项

html - Firefox 不支持 withCredentials 属性

javascript - 记住 jQuery 中的最后 n 项

jquery - D3 可重复使用的图表功能创建多个图表

javascript - 无法将 CSV 文件上传发布到 Controller 操作

javascript - 使用 jQuery 时如何让 href 跟随链接

javascript - JQuery:如何获取以相同 ID 字符开头的多个元素的特定属性类型计数?

javascript - Ruby on Rails - jQuery 使用 AJAX 获取数据

javascript - 光滑的轮播 - 淡入淡出效果不起作用