JavaScript将附加脚本附加到本机classList删除和切换方法或完成替换?

时间:2015-05-03 07:03:01

标签: javascript

当使用Gecko浏览器中remove对象的方法toggleclassList时,如果没有更多的类分配给目标元素,则该元素仍将具有class但是它将是空的。这在向服务器提交序列化代码时会产生混乱的代码,而搜索引擎可能也不了解空属性(代码与内容的比率)。

是否可以向remove对象的本机方法toggleclassList添加其他代码,以便在元素为空时从元素中删除class属性或者我是否必须为这些方法编写自己的替换脚本?

  • 如果可以通过附加到本地classList对象来完成,那么我需要知道如何来附加本机对象的现有方法。

  • 如果我需要彻底替换原生方法removetoggle,我将如何实现它,以便无论如何访问该方法({ {1}},getElementById('a').classListgetElementsByTagName('a').classList等)它仍然可以使用吗?

没有框架。

如何在JavaScript中序列化(X)HTML:

‎getElementsByClassName('a').classList

1 个答案:

答案 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);