gpt4 book ai didi

javascript - 使用 jQuery 在树 (SVG) 中间插入一个 (g) 节点

转载 作者:行者123 更新时间:2023-11-29 18:26:32 25 4
gpt4 key购买 nike

在树中间插入节点的最推荐/最有效的方法是什么。

如何转置这个

<svg id="root" ... >
<g id="child1">...</g>
<text id="child2">...</text>
<rect id="child3">...</rect>
...
</svg>

对此

<svg id="root" ... >
<g id="parent">
<g id="child1">...</g>
<text id="child2">...</text>
<rect id="child3">...</rect>
...
</g>
</svg>

@jsFiddle

我试过了

var $parent = $("g").attr("id","parent");
var $root = $("#root");
$root.contents().each(function(){
$child=$(this);
$child.remove();
$parent.append($child);
});
$root.append($parent);

我也尝试过在 this 中使用 moveTo 方法回答

(function($){
$.fn.moveTo = function(selector){
return this.each(function(){
var cl = $(this).clone();
$(cl).appendTo(selector);
$(this).remove();
});
};
})(jQuery);

$root.contents().each(function() {
$(this).moveTo($parent);
});

所有这些方法都适用于简单的场景,但是当树非常庞大时,浏览器就会挂起,是否有更有效的方法来执行此操作?
我正在寻找 jQuery 或纯 javascript 解决方案。

最佳答案

我建议:

$('#root > div').wrapAll('<div id="parent" />');

JS Fiddle demo .

引用资料:

关于javascript - 使用 jQuery 在树 (SVG) 中间插入一个 (g) 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com