如何解决document.getElementById...setAttribute\'style\',...在Internet Explorer中不起作用[重复]
| 这个问题已经在这里有了答案:解决方法
如果想使更改反映在文档中,则使用
setAttribute
是不可靠的。改用Element.style
:
var el = document.getElementById(\'id\' + id);
el.style.fontWeight = \'bold\';
el.style.color = \'red\';
el.style.fontSize = \'150%\';
等等。
,使用jQuery。
jQuery是一个非常强大的JavaScript库,可让您用很少的代码执行几乎所有操作。它的主要优点之一(除了漂亮的语法外)是专门设计为与平台和浏览器无关的,因此您不必再担心任何这些了。
现在做同样的事情,但是在jQuery中,可能看起来像这样:
function swapText(id) {
$(\'#id\' + id)
.css(\'font-weight\',\'bold\').css(\'color\',\'red\').css(\'font-size\',\'150%\')
.html(myarray[id][0]);
}
function originalText(id) {
$(\'#id\' + id).css(\'color\',\'black\').html(myarray[id][1]);
}
当然,如果为您的“交换”样式定义CSS类,则可以简单地使用$(\'#id\'+id).addClass(\'swapped\');
和$(\'#id\'+id).removeClass(\'swapped\');
。
此外,确实有很好的方法来挂接事件,因此,如果您不想执行以下操作,甚至不需要使用名称定义函数:
$(\'div\').hover(function() {
$(this)
.css(\'font-weight\',\'150%\')
.html(myarray[id][0]);
},function() {
$(\'#id\' + id).css(\'color\',\'black\').html(myarray[id][1]);
});
,从MSDN:无法通过脚本访问此属性。要通过脚本访问样式,请使用样式对象
,您可以使用也与IE-8和IE-7兼容的setAttribute
var el = document.getElementById(\'id\' + id);
el.setAttribute(\'fontWeight\',\'bold\');
el.setAttribute(\'color\',\'red\');
el.setAttribute(\'fontSize\',\'150%\');
为元素分配类,我建议以下
el.className = \"class-name\";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。