追加クラスの要素quirksmode
-
24-09-2019 - |
質問
うしてクラス、td要素の使用のjavascriptのinternet explorer8での操作モードに切り替わります。ということを、しかねますので、追加のクラスが見のソースが、私のcss doensな影響を与えうものを視覚的に変更。私は単に追加するhtmlのクラス変更の背景色は何も起こりません。で実行する場合IEs通常モードでは、実際にはそうではありませんがオプションで変更することができませんのサイトでの走行の操作モードに切り替わります。
編集:
ここでは、簡単な例:
<html>
<head>
<style>
.style1 { background-color: #ff0000; }
.style2 { background-color: #00ff00; }
</style>
</head>
<body>
<table id="table1">
<tr>
<td>some text</td>
<td>goes on</td>
<td>and on</td>
</tr>
</table>
<script type="text/javascript">
var tableElement = document.getElementById("table1");
tableElement.setAttribute("class", "style1");
</script>
</body>
</html>
りますのでご注意くの操作モード(試IE8)そのクラスが追加できる事と家開発ツール)
解決
のInternet Explorer 7と下部(8 7をエミュレート)のsetAttribute(とのgetAttribute)の完全破壊実装を持っています。
は効果的にそれがこのように動作します
HTMLElement.prototype.setAttribute = function (property, value) {
this[property] = value;
}
プロパティ名と属性名は(そのようなプロパティ名は予約語(クラスなど)やスタイルなどの他の何か()を使用したときと)同じではありません。この休憩
代わりにfoo.className = 'bar'
の使用foo.setAttribute('class','bar')
他のヒント
私は、あなたが要素に追加するどんなスタイルに基づいてスタイルシートを構築して、HTMLにそれを追加するシステムを思い付きました。ちょうど私がIEの様々な味を含むしようとしたすべてのブラウザについての動作しているようです。これは、クラスでは動作しませんが、簡単にあなたが上述のものを達成できます。
記事: http://www.4pmp.com / 2009/11 /動的-CSS-擬似クラススタイル-WITH-jqueryの/ の
所属していません StackOverflow