Javascript属性压缩
是否有一种方法可以以更紧凑的方式分配属性 我真的不想使用setAttribute,因为它在ie8中似乎有缺陷 此列表适用于所有属性,因此它相当长Javascript属性压缩,javascript,Javascript,是否有一种方法可以以更紧凑的方式分配属性 我真的不想使用setAttribute,因为它在ie8中似乎有缺陷 此列表适用于所有属性,因此它相当长 else if(a=="textalign") { e.style.textAlign=""; e.align=v } 使用类而不是给出所有属性值 .testClass { // set all attribute values here } e.className = "test"; 看 使用类,而不是给出所有属性值 .
else if(a=="textalign")
{
e.style.textAlign="";
e.align=v
}
使用类而不是给出所有属性值
.testClass
{
// set all attribute values here
}
e.className = "test";
看
使用类,而不是给出所有属性值
.testClass
{
// set all attribute values here
}
e.className = "test";
看
使用一些框架,例如,它可以解决所有浏览器不兼容问题。在JQuery中,您使用
.css('attributeName','value')
方法。使用一些框架,例如,它处理所有浏览器不兼容问题。在JQuery中,您使用.css('attributeName','value')
方法。JQuery将使.attr({attr1:val,attr2:val})
等变得容易。它还将保护您免受许多跨浏览器兼容性错误。JQuery将使.attr({attr1:val,attr2:val})变得容易
等。它还可以保护您免受许多跨浏览器兼容性错误的影响
if(a=="textalign")
{
e.style.textAlign="";
e.align=v
}
我不知道你为什么试图通过HTML属性而不是仅仅使用CSS来设置对齐。。。这是不太可靠的,因为有许多元素没有align
属性。HTMLalign
也不推荐使用,一般应避免使用
您不会说您可能要设置的“其他属性”是什么。如果您专门讨论HTML属性属性,则可以通过字符串中的名称轻松设置它们:
e[a]= v;
但是您需要a
作为HTML属性名,它应该是'align'而不是'textalign'。尝试绕过诸如textAlign之类的CSS覆盖不会有什么特别的作用,因为没有自动化的方法可以做到这一点,而且不推荐使用的HTML样式属性和CSS之间的交互定义不正确。坚持使用属性或CSS(最好使用CSS);不要两者都用
如果您正在谈论设置任何CSS样式属性,正如我可能从名称“textalign”中猜到的那样,这与设置类似:
e.style[a]= v;
但是,您还是希望使用确切的样式属性名称“textAlign”而不是“textAlign”
如果要按CSS名称设置CSS样式属性,如“文本对齐”,可以自动将其转换为DOM名称:
// convert foo-bar-baz to fooBarBaz
//
var doma= a.replace(/-([a-z])/g, function(m, g) {
return g.toUpperCase();
});
e.style[a]= v;
如果您确实需要使用“textalign”等有损大小写的名称,则必须使用所有要使用的属性名称的查找来恢复大小写:
var propernames= ['textAlign', 'borderColor', 'paddingTop']; // etc
for (var i= propernames.length; i-->0;)
if (propernames[i].toLowerCase()===a)
a= propernames[i];
e.style[a]= v;
忘记setAttribute。它与样式属性无关(这是IE6-7中的一个缺陷,它甚至可以在样式上工作),您也不应该在HTML文档的元素上使用它,因为还有其他IE6-7缺陷需要解决。坚持使用“DOMLevel2HTML”直接属性访问工具,它更可靠、更易于阅读
我不知道你为什么试图通过HTML属性而不是仅仅使用CSS来设置对齐。。。这是不太可靠的,因为有许多元素没有align
属性。HTMLalign
也不推荐使用,一般应避免使用
您不会说您可能要设置的“其他属性”是什么。如果您专门讨论HTML属性属性,则可以通过字符串中的名称轻松设置它们:
e[a]= v;
但是您需要a
作为HTML属性名,它应该是'align'而不是'textalign'。尝试绕过诸如textAlign之类的CSS覆盖不会有什么特别的作用,因为没有自动化的方法可以做到这一点,而且不推荐使用的HTML样式属性和CSS之间的交互定义不正确。坚持使用属性或CSS(最好使用CSS);不要两者都用
如果您正在谈论设置任何CSS样式属性,正如我可能从名称“textalign”中猜到的那样,这与设置类似:
e.style[a]= v;
但是,您还是希望使用确切的样式属性名称“textAlign”而不是“textAlign”
如果要按CSS名称设置CSS样式属性,如“文本对齐”,可以自动将其转换为DOM名称:
// convert foo-bar-baz to fooBarBaz
//
var doma= a.replace(/-([a-z])/g, function(m, g) {
return g.toUpperCase();
});
e.style[a]= v;
如果您确实需要使用“textalign”等有损大小写的名称,则必须使用所有要使用的属性名称的查找来恢复大小写:
var propernames= ['textAlign', 'borderColor', 'paddingTop']; // etc
for (var i= propernames.length; i-->0;)
if (propernames[i].toLowerCase()===a)
a= propernames[i];
e.style[a]= v;
忘记setAttribute。它与样式属性无关(这是IE6-7中的一个缺陷,它甚至可以在样式上工作),您也不应该在HTML文档的元素上使用它,因为还有其他IE6-7缺陷需要解决。坚持使用“DOM Level 2 HTML”直接属性访问工具,它更可靠、更易于阅读。您到底想要什么?你说属性,然后你的例子是通过JavaScript设置CSS属性,这与属性无关。你到底想要什么?你说属性,然后你的例子是通过JavaScript设置CSS属性,这与attributes.Wow无关。这是一个比我费心去写一个问题要长得多的答案,这个问题要求回答者在回答之前猜测问题是什么:)好的,很抱歉这里有点混乱。我正在构建一个富格文本编辑器,它可以在设计模式中将样式属性直接应用于对象,所以我不能使用类。关于setAttribute的提示非常有用-ta。我只是不想使用80个其他ifs,因为我的函数尝试设置对象的大多数样式属性。所以你说这将起作用a=“fontsize”v=“10pt”e=元素id e[a]=v;或者e.style[a]=v?差不多,但dome e.style属性称为“fontSize”。同样,CSS在样式名中有连字符的地方,DOM都有大写字母。此外,“pt”是一个不好的单位,除了打印特定的样式表外,它不适合任何东西使用!:-)对于固定大小的字体,请使用“px”,对于相对大小的字体,请使用“%”。可能与您的富文本编辑器无关,但CSS连字符变为JS大写规则有一两个例外:
float
->cssFloat