как удалить все атрибуты из js или jquery. (Я не знаю, какие атрибуты в теле, я хочу удалить все их)
Как удалить все атрибуты из <body> с помощью js или jquery
Ответ 1
Вы можете использовать свойство 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
Предполагая, что вы хотите удалить атрибуты в element
, вы можете использовать что-то вроде
$(element).removeAttr($.makeArray(element.attributes)
.map(function(item){ return item.name;})
.join(' '));
Обратите внимание, что это будет работать только с jQuery 1.7 +
Ответ 3
var $newBody = $('<body>');
$newBody.append( $('body').contents() );
$('body').replaceWith( $newBody );
Что-то вроде этого может работать.
Ответ 4
Я не знаю, если это лучший способ, но он работает
$('body').each(function(){
var $body = $(this);
var attributes = $.makeArray(this.attributes);
$.each(attributes, function(indexInArray, valueOfElement) {
$body.removeAttr(valueOfElement.name);
});
});
Ответ 5
Как и в ES2015, вы можете использовать Array.from().
const el = document.body;
const attributes = Array.from(el.attributes);
attributes.forEach(attr => el.removeAttributeNode(attr));