dojo 如何用div包围元素

cu6pst1q  于 2022-12-16  发布在  Dojo
关注(0)|答案(5)|浏览(138)

如何在dojo中用div标签包围元素?

<button>Testing</button>
:
<div>
<button>Testing</button>
</div>

<div>Testing <span>something</span></div>
:
<div>
<div>Testing <span>something</span></div>
</div>
quhf5bfb

quhf5bfb1#

我终于找到了答案
Surrounding

var node = domConstruct.create("div");
dojo.addClass(node,"container");
var refNode = dom.byId("refNode");
var tagName = refNode.tagName.toLowerCase();
node.innerHTML="<"+tagName+">"+refNode.innerHTML+"</"+tagName+">";
domConstruct.place(node, refNode,"before");
domConstruct.destroy(refNode);
l3zydbqr

l3zydbqr2#

很简单

require(["dojo/dom-construct"], function(domConstruct){
      var n = domConstruct.create("div", { innerHTML: "Testing <span>something</span>" });
    });

在这里阅读所有相关内容

kb5ga3dv

kb5ga3dv3#

不如这样:

var refNode = dom.byId("refNode");
// make the new div, with the correct class, directly after the node to be wrapped
var node = domConstruct.create("div", {"class":"container"}, refNode, "after");
// move the refNode inside our wrapping node
domContruct.place(refNode, node);
5anewei6

5anewei64#

一种快速而粗略的方法如下所示:

element.outerHTML = '<div>' + element.outerHTML + '</div>';

不需要任何库。注意,这将在幕后创建一个新对象,因此您必须再次检索element以获得周围的元素,以防以后需要它。
总的来说,它很方便,因为您不必删除旧元素并插入新元素。
我还提出了一种类似的方法来替换标记名并保留属性,这可能会引起某些人的兴趣。

cgvd09ve

cgvd09ve5#

我不知道2013年的情况如何,但现在,Dojo的NodeList操作功能让您可以非常轻松地完成这项工作。
给定:

<b>one</b>
<b>two</b>

用途:

require(["dojo/query", "dojo/NodeList-manipulate"], function(query){
  query("b").wrap("<div><span></span></div>");
});

输出:

<div><span><b>one</b></span></div>
<div><span><b>two</b></span></div>

此示例摘自此处的文档。

相关问题