2

我想在单击的元素周围创建一个 div 而不影响页面的样式,并且我需要在一些操作后删除插入的父级。有没有人有这样的想法?

编辑:请注意我不想使用任何 JavaScript 库

4

2 回答 2

7

我不能保证它不会影响样式,但至于其余的,尝试这样的事情(在点击处理函数内部):

var div = document.createElement("div");
var parent = this.parentNode;
parent.insertBefore(div, this);
div.appendChild(this);

如果您想删除新的 div 元素时仍在该函数中:

parent.insertBefore(this, div);
parent.removeChild(div);

如果没有,您需要重新获取它。假设您有一个触发器,并且this仍然是单击的元素:

var div = this.parentNode;
var parent = div.parentNode;
parent.insertBefore(this, div);
parent.removeChild(div);
于 2012-07-22T14:28:40.457 回答
2

jQuery 有一个wrap()功能可以做你想做的事。保证不改变样式通常是不可能的,但如果您控制页面和/或 css,这应该不是问题。

于 2012-07-22T14:28:34.793 回答