Что эквивалентно IE для удаления узла - PullRequest
2 голосов
/ 21 декабря 2010

IE УдалитьNode http://msdn.microsoft.com/en-us/library/ms536708(VS.85).aspx

помогает мне решить, хочу ли я удалить дочерние узлы или нет.

Я хотел бы знать, существует ли то же самое для Firefox, Opera, Chrome и Safari. Если нет, то как мне этого добиться?

Ответы [ 2 ]

5 голосов
/ 21 декабря 2010

Не хочу просто скопировать код, прочитайте: http://www.sitepoint.com/forums//showthread.php?p=947385

Редактировать (но мне, пст, не стыдно - код сверху ссылка; -)

if ( window.Node )
Node.prototype.removeNode = function( removeChildren )
{
    var self = this;
    if ( Boolean( removeChildren ) )
    {
        return this.parentNode.removeChild( self );
    }
    else
    {
        var range = document.createRange();
        range.selectNodeContents( self );
        return this.parentNode.replaceChild( range.extractContents(), self );       
    }
}
2 голосов
/ 21 декабря 2010

Нет, .removeNode() не является стандартным методом и не существует вне IE.

Если вам нужна функциональность removeNode для продвижения дочерних элементов до уровня (необязательный логический аргумент), вам придется сделать это вручную.

Однако с jQuery это легко:

$(elToRemove).replaceWith($(elToRemove).children());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...