Jquery 将一个元素环绕另一个元素
有没有一种简单的方法可以像jQuery()那样包装 示例: 在jQuery中:Jquery 将一个元素环绕另一个元素,jquery,dart,Jquery,Dart,有没有一种简单的方法可以像jQuery()那样包装 示例: 在jQuery中: $('.inner').wrap('<div />'); HTML看起来像什么 <html> <head> </head> <body> <div class="inner"> Some text </div> </body> </html> 一些文本 结
$('.inner').wrap('<div />');
HTML看起来像什么
<html>
<head>
</head>
<body>
<div class="inner"> Some text </div>
</body>
</html>
一些文本
结果是
<html>
<head>
</head>
<body>
<div>
<div class="inner"> Some text </div>
</div>
</body>
</html>
一些文本
以下是一个可以满足您需求的wrap()函数的简单实现:
导入“dart:html”;
包装(元素、元素包装器){
var clone=element.clone(true);
元素。替换为(包装器);
wrapper.children.add(克隆);
}
void main(){
换行(query('p.first'),new DivElement());
}
调用wrap()
后,DOM如下所示:
<div>
<p class='first'></p>
</div>
我不知道这两种解决方案是否适用于所有情况,但它们都适用于这里的示例。我不认为该功能已经可用,但它看起来像是一个有用的功能。您可以在这里创建一个功能请求:我已经创建了一个功能请求:是否需要克隆元素
?我不这么认为。不,我想不是。我正在添加第二个不使用克隆的解决方案。我看到了另一个问题(可能?)-如果参数wrapper
已经有了父节点怎么办?我假设wrapper是一个未连接的DOM节点。当然,如果它是一个DOM元素,事情会变得有点棘手。
<div>
<p class='first'></p>
</div>
wrap2(Element element, Element wrapper) {
element.parent.insertBefore(wrapper, element);
wrapper.children.add(element);
}