3

特定の条件に応じて、ページ上の div の位置を変更しようとしています。

if (somecondition)
    document.getElementById("Div1").setAttribute("style", "position: absolute; left:297px; top:882px; height: 30px; width: 181px; margin-top: 0px;");

以下のhtmlでdivの位置を変更していません:

<div id="Div1" style="top:366px; left:134px; position:absolute; height: 30px; width: 175px;">

if の他のコードが起動します。

誰でも助けることができますか?ブラウザ:IE8

4

7 に答える 7

7

変更をドキュメントに反映させたい場合、 setAttribute の使用は信頼できません。代わりに Element.style を使用してください:

var el = document.getElementById('Div1');
el.style.position = 'absolute';
el.style.left = '397px';
el.style.top = '882px';
el.style.height = '30px';
el.style.width = '181px';
el.style.marginTop = '0px';
于 2012-09-26T13:19:11.603 に答える
3

あなただけがする必要があります

document.getElementById("Div1").style.<some css property> = <some value>; // like
document.getElementById("Div1").style.left = "297px";
document.getElementById("Div1").style.top = "882px";

(もちろん、getELementById をキャッシュする必要があります)

于 2012-09-26T13:20:33.073 に答える
2

2 つのスタイル クラスを作成し、クラスに 2 つの異なる位置を追加します。次に、JavaScript の条件が満たされている場合は、DIVs クラスを変更します。例えば:

if(someCondition) {
    document.getElementById('Div1').setAttribute('class', 'style2');
} else {
    document.getElementById('Div1').setAttribute('class', 'style1');
}

CSS スタイル

.style1 {
    top:366px;
    left:134px;
    position:absolute;
    height: 30px;
    width: 175px;
}

.style2 {
    position: absolute;
    left:297px;
    top:882px;
    height: 30px;
    width: 181px;
    margin-top: 0px;

HTML

<div id="Div1" class="style1"></div>
于 2012-09-26T13:34:30.463 に答える
2

CSS を単一の文字列として使用するには、次のElement.style.cssTextプロパティを設定する必要があります。

var element = document.getElementById("Div1");
element.style.cssText = "position: absolute; left:297px; top:882px; height: 30px; " +
                        "width: 181px; margin-top: 0px;";
于 2012-09-26T13:22:15.750 に答える
2

その動作は完璧です。ここでデモをチェックしてください。

HTML:

<div id="Div1" style="top:366px; left:134px; position:absolute; height: 30px; width: 175px;">
    hello world
</div>

</p>

Javascript:

document.getElementById("Div1").setAttribute("style", "position: absolute; left:297px; top:82px; height: 30px; width: 181px; margin-top: 0px;"); </p>

于 2012-09-26T13:26:00.460 に答える
1

のようにしてみてください

document.getElementById("Div1").style.left = "297px";
document.getElementById("Div1").style.top = "882px";
于 2012-09-26T13:19:23.520 に答える
0

document.ready(function(){}); に JavaScript コードを入れていませんか?

于 2012-09-26T13:21:58.713 に答える