Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将一个元素环绕另一个元素_Jquery_Dart - Fatal编程技术网

Jquery 将一个元素环绕另一个元素

Jquery 将一个元素环绕另一个元素,jquery,dart,Jquery,Dart,有没有一种简单的方法可以像jQuery()那样包装 示例: 在jQuery中: $('.inner').wrap('<div />'); HTML看起来像什么 <html> <head> </head> <body> <div class="inner"> Some text </div> </body> </html> 一些文本 结

有没有一种简单的方法可以像jQuery()那样包装

示例:

在jQuery中:

$('.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);
}