className 没有附加到 js 对象
className is not appended to the js object
var obj = document.createElement('div');
obj.className = 'className';
这将输出附加了 class 的 div 元素。
var obj = {
divE : function(){
return document.createElement('div')}
}
obj.divE().className = 'className';
这不会将 class 名称附加到 div 元素,即 obj.divE()
可能是什么原因?如何将 class 附加到 obj.divE();
obj.divE().className = 'className';
语句的返回值为className
字符串。您的代码创建一个元素,修改它的 className
属性 并且实际上什么都不做。如果存储返回值:
var value = obj.divE().className = 'className';
那么存储的值是 'className'
字符串而不是创建的元素。您必须创建元素,存储它,然后更新 className
就像您的第一个片段一样。
如果您想创建辅助函数,您可以编写代码:
var obj = {
divE : function(cls) {
var div = document.createElement('div');
if ( cls ) {
div.className = cls;
}
return div;
}
}
var createdElement = obj.divE('className');
var anotherElement = obj.divE();
使用
var ob = obj.divE();
ob.className = "className";
每次直接调用 obj.divE() 都会创建一个新元素 object.so
obj.divE().className = 'ClassName';
obj.divE().id= 'ClassName';
两条线创建不同的对象。
你必须给它分配一些重用的地方。
var obj = document.createElement('div');
obj.className = 'className';
这将输出附加了 class 的 div 元素。
var obj = {
divE : function(){
return document.createElement('div')}
}
obj.divE().className = 'className';
这不会将 class 名称附加到 div 元素,即 obj.divE()
可能是什么原因?如何将 class 附加到 obj.divE();
obj.divE().className = 'className';
语句的返回值为className
字符串。您的代码创建一个元素,修改它的 className
属性 并且实际上什么都不做。如果存储返回值:
var value = obj.divE().className = 'className';
那么存储的值是 'className'
字符串而不是创建的元素。您必须创建元素,存储它,然后更新 className
就像您的第一个片段一样。
如果您想创建辅助函数,您可以编写代码:
var obj = {
divE : function(cls) {
var div = document.createElement('div');
if ( cls ) {
div.className = cls;
}
return div;
}
}
var createdElement = obj.divE('className');
var anotherElement = obj.divE();
使用
var ob = obj.divE();
ob.className = "className";
每次直接调用 obj.divE() 都会创建一个新元素 object.so
obj.divE().className = 'ClassName';
obj.divE().id= 'ClassName';
两条线创建不同的对象。
你必须给它分配一些重用的地方。