我不知道有關的錯誤,但我看得出來做到這一點最簡單的方法是:
var el = $('.close');
$('.modal').empty().append(el);
JS Fiddle demo。
稍微更好的方法(多的不正確的假設.close
元素):
$('.modal').each(
function(){
var that = $(this),
el = that.find('.close');
that.empty().append(el)
});
JS Fiddle demo。
使用jQuery each()
和一個純JavaScript函數的組合:
function fratricide(el) {
while (el.previousSibling) {
el.parentNode.removeChild(el.previousSibling);
}
while (el.nextSibling) {
el.parentNode.removeChild(el.nextSibling);
}
}
$('.close').each(
function() {
fratricide(this);
});
JS Fiddle demo。
和JS Perf comparison of approaches。毫不奇怪,使用普通JavaScript會顯着加快速度,儘管我認爲它很難讀(雖然我不確定它可以實際變得多漂亮)。
有趣的是使用變量來存儲參考el.parentNode
使微小差別,因爲儘管保存到元/節點的DOM的引用可能(對我來說,反正現在我已經更新了先前聯JS逆足)仍然需要訪問才能找到el.previousSibling
節點?
向我們展示了HTML的一個例子吧。 – Zim84
已經完成了,看看[fiddle](http://fiddle.jshell.net/KLh4E/1/)... – yckart
你的HTML應該在*問題本身*,否則當JS小提琴摔倒了(和它確實,半頻繁地)這個問題變得毫無用處,作爲具有相同或類似問題的其他人的資源。 –