包裹在标签中的 jquery DOM 对象最终会自行结束?
我正在尝试将 jQuery 对象包装在列表中。对象是
<a class="medium button" title="Title"">Sample</a>
和交互
$(".medium").click(function() {
$(".list4").append("<li>");
$(".list4").append($(this));
$(".list4").append("</li>");
});
,但这不可避免地会出现在空白列表项中。但如果我做类似的事情,
$(".medium").click(function() {
$(".list4").append("<li>");
$(".list4").append($(this).html());
$(".list4").append("</li>");
});
该项目就没有链接。我应该怎么办?
I'm trying to wrap a jQuery object in a list. The object is
<a class="medium button" title="Title"">Sample</a>
and the interaction
$(".medium").click(function() {
$(".list4").append("<li>");
$(".list4").append($(this));
$(".list4").append("</li>");
});
but this inevitably ends up in a blank list item. But if I do something like
$(".medium").click(function() {
$(".list4").append("<li>");
$(".list4").append($(this).html());
$(".list4").append("</li>");
});
the item doesn't have the link. What should I do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是另一种方法:
或者如果您想将元素保留在原来的位置,您可以
克隆
它:如@Marc B 已经在他的回答中解释了,每个
append
插入一个新的 DOM 节点,而不仅仅是 HTML 文本。当您调用$element.append('
')
时,浏览器(甚至 jQuery)将更正“损坏的”HTML。Here is another way:
or if you want to leave the element at it's original place, you can
clone
it:As @Marc B already explained in his answer, every
append
inserts a new DOM node, not just HTML text. When you call$element.append('<div>')
, then the browser (or even jQuery) will correct the "broken" HTML.尝试
每个追加操作生成至少一个新节点。像这样调用 3 次会生成 3 个新节点。因此...嵌入要附加的完整 HTML 代码段,这将生成一个新的
try
each append operation generates at least one new node. Calling it 3 times like that generates 3 new nodes. So... embed a full HTML snippet to be appended, which'll generate just one new
<li>
你尝试过吗?
Have you tried that?