0

最初は、これが次の場合にのみ知りたいです:

document.getElementsByClassName("main-content_datafield").style.width= this.value;

使用することが有効です。もしそうなら、私は間違いを犯したでしょう。一部のオブジェクトのサイズを制御する rangeslider を作成したいと考えています。このために、JavaScriptを使用してスライダーの値を取得し、前からコードを追加しました。最終的には次のようになります。

http://jsfiddle.net/oqh16n2u/1/

それで、私はここで何を間違えましたか?

ありがとう!

4

3 に答える 3

1

要素のセットにafterを追加して、によって返されるfor反復処理にループを利用してみてくださいHTMLCollection.getElementsByClassName()"px"this.valuewidth

var scale_range = document.getElementById('scale_range');
demo = document.getElementById("demo");

scale_range.onchange = function () {
    demo.innerHTML = this.value;

    var elems = document.getElementsByClassName("main-content_datafield");
    for (var i = 0; i < elems.length; i++) {
        elems[i].style.width = this.value + "px";
    }
}

jsfiddle http://jsfiddle.net/oqh16n2u/5/

于 2015-08-23T17:41:38.423 に答える
0

あなたはほとんどそこにいます。あなたのコードにはいくつかの問題があります:

  1. document.getElementsByClassName("main-content_datafield")DOM Element オブジェクトではなく、配列のようなオブジェクトを返します。したがって、その配列を反復処理する必要があります。
  2. width プロパティも単位を取ります。

したがって、次のような方が良いでしょう:

document.getElementsByClassName("main-content_datafield")[i].style.width = this.value + 'px'; ループで。

于 2015-08-23T17:50:50.007 に答える
0

css()すでに jQuery を使用しているので、U はjQuery のメソッドを使用して目的の効果を得ることができます。

scale_range.onchange = function() {
    demo.innerHTML = this.value;
    $('.main-content_datafield').css('width',this.value+'px');
}

作業フィドル: http://jsfiddle.net/MasoomS/oqh16n2u/4/

于 2015-08-23T17:48:04.360 に答える