0

幅と高さが同じでなければならない div があります。

<div class="radior" id="ha" style="background-color: #006;" onClick='foo()'></div>

したがって、Javascript では、最初に高さを確認してから、幅を変更したいと考えています。<div>

function foo(){
    var innerHeight = document.getElementById('ha').offsetHeight;
    var ele = document.getElementsByClassName("radior");

    for (var i = 0, len = ele.length; i < len; i++){
       ele[i].style.width = innerHeight;
    }
}

でもなぜかうまくいかない!理解できません!ドイツからのご挨拶。フィドルの例を次に示します。

http://jsfiddle.net/TSk6y/1/

4

4 に答える 4

4

なぜシンプルにしないのですか?そのための for ループは必要ありません。要素を直接アドレス指定+"px"し、幅の宣言に追加するだけです。

<div class="radior" id="ha" style="background-color: #006;" onClick='foo(this)'></div>

function foo(that){
    var innerHeight = that.offsetHeight;
    that.style.width = innerHeight+"px";
}

またはさらに短い:

function foo(that){
    that.style.width = that.offsetHeight+"px";
}
于 2013-02-19T13:42:07.407 に答える
3

これをするだけ

ele[i].style.width = innerHeight + "px";
于 2013-02-19T13:39:31.913 に答える
2

試す ele[i].style.width = innerHeight+"px";

フィドル リンク: http://jsfiddle.net/opherv/57V5b/

于 2013-02-19T13:39:53.730 に答える
1

これは私にとってはうまくいくようです-なぜjsFiddleがうまくいかないのかわかりませんが、すべてのコードを.htmlファイルに配置し、標準ブラウザで実行すると(ここではクロムを使用)、動作します. div をクリックすると、実際に幅が変更されます。

<html>
<head>
<style>
body,html {width:100%;
    height:100%;
}

.radior{
    width: 20%;
    height: 60%;
}
</style>
</head>
<body>
<div class="radior" id="ha" style="background-color: #006;" onClick="foo()"></div>
</body>
<script type="text/javascript">
function foo(){
    var innerHeight = document.getElementById('ha').offsetHeight;
    var ele = document.getElementsByClassName("radior");

    for (var i = 0, len = ele.length; i < len; i++){
    ele[i].style.width = innerHeight;
    }
}
</script>
</html>
于 2013-02-19T13:53:33.763 に答える