【发布时间】:2012-03-25 03:26:46
【问题描述】:
我想从 DOM 中检索某个标签元素及其属性。例如,来自
<a href="#" class="class">
link text
</a>
我想获得<a href="#" class="class">,可以选择使用结束</a>,作为字符串或其他对象。
在我看来,这类似于在没有 .innerHTML 的情况下检索 .outerHTML。
最后,我需要它来通过 jQuery 包装一些其他元素。我试过了
var elem = $('#some-element').get(0);
$('#some-other-element').wrap(elem);
但.get() 返回包含其内容的DOM 元素。还有
var elem = $('#some-element').get(0);
$('#some-other-element').wrap(elem.tagName).parent().attr(elem.attributes);
失败,因为elem.attributes 返回一个NamedNodeMap,它不适用于jQuery 的attr(),我无法转换它。
承认上面的例子不是很有意义,因为它们也复制了元素的不再唯一的 ID。但是有什么简单的方法吗?非常感谢。
【问题讨论】:
-
只需使用
.clone()克隆节点,然后使用.html()将其清空并删除id以及您想要的其他内容。 -
$("a").clone().empty().attr("outerHTML");解决第一个问题
-
谢谢@kirilloid,猜猜乔希更快了;)
-
也感谢@UlhasTuscano,应该与一些outerHTML 变通方法结合使用,例如stackoverflow.com/questions/2419749/…
标签: javascript jquery dom innerhtml outerhtml