2012-07-22 27 views
2

我想圍繞單擊的元素創建一個div,而不會影響頁面的樣式,我需要在某些操作後刪除插入的父項。有人有這樣的想法嗎?爲選定的元素創建一個父div

編輯:請注意,我不希望使用任何JavaScript庫

+0

Clicked元素是一個按鈕? – 2012-07-22 14:20:01

+1

作爲一個側面說明。除非您控制CSS,否則您不能保證樣式不會受到影響。例如,如果您有一種專門針對一組嵌套元素的樣式,那麼只要引入'div'來更改嵌套順序,就不會應用這些樣式。 – Nope 2012-07-22 14:23:09

+2

它被稱爲「包裝」。 – pimvdb 2012-07-22 14:27:11

回答

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); 
2

jQuery有一個wrap()功能,將你想要做什麼。保證沒有樣式被改變是不可能的,但如果你控制頁面和/或CSS,它不應該是一個問題。

相關問題