我希望每当创建div元素时都添加一个类。
var divElement = document.createElement('div')
应该回来
<div class="foo"></div>
编辑:
我不想在每次document.createElement('div')
使用className或setAttribute创建另一个类时重复添加Class 。我应该写document.createElement('div')
,以后再添加类。
我们可以在document.createElement处进行更改吗?
如果要覆盖document.createElement
-确实要-的行为,则:
document.createElement = (function() {
var original_createElement = document.createElement.bind(document);
return function(tagName, cls) {
var elt = original_createElement(tagName);
elt.className = cls;
return elt;
};
}());
关于此的一些注意事项:
我们使用IIFE来隔离original_createElement
封闭内部。
我们需要这样做bind
,document.createElement
因为该功能需要document
上下文。
该功能设计用于document.createElement('div', 'foo')
。如果您确实希望foo
将其添加到将来创建的每个元素中,请删除该cls
参数并elt.className = 'foo';
改为执行。
但是无论如何我都不建议这样做。
相反,如注释和其他答案中所述,定义您自己的函数:
function createElementWithClassFoo() {
var div = document.createElement('div');
div.classList.add('foo');
return div;
}
或将其推广到任何类别:
function createElementWithClass(cls) {
var div = document.createElement('div');
div.classList.add(cls);
return div;
}
然后打电话
var divElement = createElementWithClassFoo();
var divElement = createElementWithClass('foo');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句