Javascript ExtJS中是否有其他方法,比如jQuery.unwrap方法?

Javascript ExtJS中是否有其他方法,比如jQuery.unwrap方法?,javascript,jquery,extjs,Javascript,Jquery,Extjs,我找不到一个替代函数来展开一个元素,就像使用jQuery一样。 还有别的办法吗 我的目标是归档此代码并将其所有属性复制到其子元素。 并删除父对象 <div class="abc" myid="123" position="2"> <span class="someblock"> <p>Some paragraph</p> <img width="140px; height: 140px;" class="myimg" src=

我找不到一个替代函数来展开一个元素,就像使用jQuery一样。 还有别的办法吗

我的目标是归档此代码并将其所有属性复制到其子元素。 并删除父对象

<div class="abc" myid="123" position="2">
<span class="someblock">
    <p>Some paragraph</p>
    <img width="140px; height: 140px;" class="myimg" src="http://www.urltoimage.com/image.png">
</span>
</div>

某段

结果应该是:

<span class="someblock abc" myid="123" position="2">
<p>Some paragraph</p>
<img width="140px; height: 140px;" class="myimg" src="http://www.urltoimage.com/image.png" />
</span>

某段


提前谢谢你,Chris。

我总是用jQuery发布我的ExtJS项目来做这样的操作,我建议你也这样做

这会让你的生活更轻松;)

编辑:

如果您严格地需要在ExtJS中执行此操作,您将需要一个脚本并对其进行操作。我会给你一个

unwrap: function() {
    parent = this.parent().dom;
    this.insertBefore(parent );

    // code for copy the styles, classes & attributes here

    parent.destroy();
    return this;
}
该方法应该在
Ext.dom.Element
类或任何 扩展它的人


我总是将我的ExtJS项目与jQuery一起发布来执行此类操作,我建议您也这样做

这会让你的生活更轻松;)

编辑:

如果您严格地需要在ExtJS中执行此操作,您将需要一个脚本并对其进行操作。我会给你一个

unwrap: function() {
    parent = this.parent().dom;
    this.insertBefore(parent );

    // code for copy the styles, classes & attributes here

    parent.destroy();
    return this;
}
该方法应该在
Ext.dom.Element
类或任何 扩展它的人


只需使用jQuery。这是最简单的方法,因为ExtJS是一个用户界面工具包,它不会让您进行如此低级的操作。所以首先考虑一下。你真的需要操纵DOM树吗?如果是=>也交付jQuery

编辑:
当然,受jQuery代码的启发,您可以自己实现这个特定的函数;)

只需使用jQuery。这是最简单的方法,因为ExtJS是一个用户界面工具包,它不会让您进行如此低级的操作。所以首先考虑一下。你真的需要操纵DOM树吗?如果是=>也交付jQuery

编辑:
当然,受jQuery代码的启发,您可以自己实现这个特定的函数;)

为什么不直接使用jQuery?我不允许包含第二方库:(为什么不直接使用jQuery?我不允许包含第二方库:(我不允许包含第二方库:(哈哈哈,我可以这么做是的:)@chriscrossweb Se my edit…是的,您需要自己实现它。即使ExtJS有一个wrap方法,也没有unwrap@chriscrossweb我发布了一个简单的方法,可以打开单个元素(仅此而已)。您可能需要应用任何代码来复制属性、类等。但这应该给您一个开始。注意:所有未经测试!!@chriscrossweb在您的示例中,您将使用class
abc
保留div,第一个将主体作为父对象,如果我们将主体作为父对象,则应该中断。无论如何,不会发生任何重要的事情(除了无效的insertBefore调用)第二个被包装,包装被删除(
)请注意,unwrap是在子级而不是包装父级上调用的!如果您的目标是只保留span标记,则需要在span而不是div上迭代。无论如何,这将跳过body标记。因此基本上我会说所有工作都正确?我不允许包含第二方库:(哈哈哈,我可以这样做是的:)@chriscrossweb Se my edit…是的,您需要自己实现它。即使ExtJS有一个wrap方法,也没有unwrap@chriscrossweb我发布了一个简单的方法,可以打开单个元素(仅此而已)。您可能需要应用任何代码来复制属性、类等。但这应该给您一个开始。注意:所有未经测试!!@chriscrossweb在您的示例中,您将使用class
abc
保留div,第一个将主体作为父对象,如果我们将主体作为父对象,则应该中断。无论如何,不会发生任何重要的事情(除了一个无效的insertBefore调用)第二个被包装,包装被删除(
)请注意,unwrap是在一个子项上调用的,而不是包装父项!如果您的目标是只保留span标记,那么您需要在span而不是div上迭代。无论如何,这将跳过body标记。因此,基本上我认为所有工作都正确吗?