0

IE9 の 3 つの条件に基づいて集約されたフッターの配置が変更されたため、グリッドビュー フッターのスタイルのスタイルを変更しようとしていますが、未定義のエラーが引き続き表示されます。スタイルを変更するにはどうすればよいですか?

.rgFooter, .rgFooterDiv
    {
        background: none !important;
        background-color: transparent !important;
        width: 100% !important;
        /*max-width:779px;*/
    }

に:

.rgFooter, .rgFooterDiv
    {
        background: none !important;
        background-color: transparent !important;
        width: 100% auto!important;
}

javascriptのみを使用し、JQueryは使用しません。私はこれまでに試しました:

var mydiv = document.getElementById("mygrid").className;
mydiv.setAttribute("style", "width: 100% auto !important;  background: none !important; background-color: transparent !important;");

みんな助けてくれてありがとう

4

5 に答える 5

1

jQuery を使用できない場合は、jQuery のaddClassandremoveClass関数を使用する必要があります。ここで純粋な JavaScript で書き直されたものを見ることができます: https://stackoverflow.com/a/14105067/1026459

への呼び出しsetAttributeが機能しない理由は、作成した参照が要素のクラスの文字列に対するものであるためです。

var mydiv = document.getElementById("mygrid").className;

おそらく、代わりに次のように div にアクセスする必要があります。

var mydiv = document.getElementById("mygrid");

にアクセスできるようになりますsetAttribute。divからすべてのクラスを単純に削除するには、いつでも使用できます

mydiv.removeAttribute("class");
于 2013-02-05T00:01:48.930 に答える
1

インライン スタイルに「!important」を使用する必要はありません。ライブラリを使用せずに JavaScript を使用してインライン スタイルを設定する場合は、次のようにすることをお勧めします。

var mydiv = document.getElementById("mygrid");
mydiv.style.width = "100% auto";
mydiv.style.background = "none";
mydiv.style.backgroundColor = "transparent";

コードに問題があると思います

var mydiv = document.getElementById("mygrid").className; // mydiv variable is a string
mydiv.setAttribute(...); // Why would a string have "setAttribute" function?
于 2013-02-05T00:04:31.757 に答える
0

このclassNameプロパティは、要素へのアクセスに使用できるオブジェクトではなく、文字列を返します。それを削除するだけです:

var mydiv = document.getElementById("mygrid");
于 2013-02-05T00:01:53.747 に答える
0

まず、要素の「className」プロパティにアクセスしたくありません。要素が必要なだけです。

var mydiv = document.getElementById("mygrid");

次に、スタイル オブジェクトの個々のプロパティを設定する必要があります。

mydiv.style.width = '100%';
mydiv.style.backgroundColor = 'transparent';

等々。すべてのクラスを削除したい場合は、次のようにします。

mydiv.className = '';
于 2013-02-05T00:01:58.327 に答える
0

別の css を追加しました:

.rgmine
    {
        background: none !important;
        background-color: transparent !important;
        width: auto !important;       
    } 

次に、3 番目の条件に基づいてクラス名を変更しました。

<script type="text/javascript">
    function pageLoad() {                
            document.getElementById('ctl00_Body_rgWMTSI_GridFooter').className = 'rgmine'}

</script>
于 2013-02-05T00:08:56.523 に答える