当使用Gecko浏览器中remove
对象的方法toggle
或classList
时,如果没有更多的类分配给目标元素,则该元素仍将具有class
但是它将是空的。这在向服务器提交序列化代码时会产生混乱的代码,而搜索引擎可能也不了解空属性(代码与内容的比率)。
是否可以向remove
对象的本机方法toggle
或classList
添加其他代码,以便在元素为空时从元素中删除class
属性或者我是否必须为这些方法编写自己的替换脚本?
如果可以通过附加到本地classList
对象来完成,那么我需要知道如何来附加本机对象的现有方法。
如果我需要彻底替换原生方法remove
或toggle
,我将如何实现它,以便无论如何访问该方法({ {1}},getElementById('a').classList
,getElementsByTagName('a').classList
等)它仍然可以使用吗?
没有框架。
如何在JavaScript中序列化(X)HTML:
getElementsByClassName('a').classList
答案 0 :(得分:0)
在序列化DOM之前,我宁愿删除空的class
属性,而不是尝试覆盖classList
方法。这样做非常简单:
var r = document.getElementById('example_id');
var els = [].slice.call(r.querySelectorAll('[class=""]').concat(r.className ? [] : [r]);
els.forEach(function(el) {
el.removeAttribute('class');
});
var xml = new XMLSerializer().serializeToString(r);