как удалить все атрибуты из <body>с помощью js или jquery - PullRequest
10 голосов
/ 29 августа 2010

как удалить все атрибуты с помощью js или jquery. (Я не знаю, что это за атрибуты в теле, я хочу удалить их все)

Ответы [ 5 ]

19 голосов
/ 29 августа 2010

Вы можете использовать свойство DOM Level 1 Core attributes для доступа к атрибутам в виде списка. Как обычный JS:

function removeAllAttrs(element) {
    for (var i= element.attributes.length; i-->0;)
        element.removeAttributeNode(element.attributes[i]);
}
removeAllAttrs(document.body);

Или одетый в одежду плагина jQuery:

$.fn.removeAllAttrs= function() {
    return this.each(function() {
        $.each(this.attributes, function() {
            this.ownerElement.removeAttributeNode(this);
        });
    });
};

$('body').removeAllAttrs();
2 голосов
/ 29 октября 2012

Предполагая, что вы хотите удалить атрибуты для element, вы можете использовать что-то вроде

$(element).removeAttr($.makeArray(element.attributes)
                       .map(function(item){ return item.name;})
                       .join(' '));

Обратите внимание, что это будет работать только с jQuery 1.7 +

0 голосов
/ 06 сентября 2017

Начиная с ES2015, вы можете использовать Array.from () .

const el = document.body;
const attributes = Array.from(el.attributes);
attributes.forEach(attr => el.removeAttributeNode(attr));
0 голосов
/ 29 августа 2010

Я не знаю, лучший ли это способ, но он работает

$('body').each(function(){
     var $body = $(this);
     var attributes = $.makeArray(this.attributes);

     $.each(attributes, function(indexInArray, valueOfElement) {
         $body.removeAttr(valueOfElement.name);
     });
});
0 голосов
/ 29 августа 2010
var $newBody = $('<body>');
$newBody.append( $('body').contents() );
$('body').replaceWith( $newBody );

Нечто подобное может сработать.

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