我想在点击的元素周围创建一个div而不影响页面的样式,我需要在一些操作后删除插入的父元素。有人有任何想法这样做吗?
编辑:请注意,我不想使用任何JavaScript库
答案 0 :(得分:5)
我不能保证它不会影响样式,但对于其余部分,请尝试这样的事情(在点击处理函数内):
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);
答案 1 :(得分:2)
jQuery有一个wrap()
函数可以执行您想要的操作。保证一般不会改变样式,但是如果你控制页面和/或css它不应该是一个问题。