2016-09-27 8 views
0

私は入力範囲オブジェクトを作成して、ユーザーが値の範囲から選択し、これを読んでjQuery変数を更新できるようにしようとしています。私はの値にアクセスしようとした場合HTML5/JavaScript/jQuery - jQueryセレクタを使用すると入力範囲.value()が未定義になりますか?

は:

<input id="scroll" type="range" min="1" max="60" value="5"> 

を私が使用している場合:それは正しい機能や変数の更新

$("#scroll").on("change", function() { 
    variable = this.value; 
}); 

。しかしながら

、次のように私は、jQueryのタグセレクタを使用する場合:

$("#scroll").on("change", function() { 
    variable= $("#scroll").value; 
} 

変数が未定義になります。

理由を教えてください。私の考えは、 "this"はHTMLオブジェクトを参照していて、HTML属性を使用していますが、それについては十分に分かりません。

+0

変数を定義するために試した 'var variable ='をお試しください。 – NewToJS

+0

申し訳ありませんが、変数はこの関数の範囲外で定義されています。変数を更新する関数が必要でした。 –

答えて

2

正しい構文は$("#scroll").val()です。 #を省略し、jQueryメソッドの代わりにDOMプロパティを使用しました。

$("#scroll").on("change", function() { 
    variable= $("#scroll").val(); 
} 
+0

'this.value'は同じ結果を返しますか? – guest271314

+1

はい、そうすべきです。 – Barmar

+0

@ guest271314はい、その結果は同じになりますが、Davidが 'this.value'を使って指摘しているように働いています。セレクタに '#'がないために動作しないのはjQueryメソッドです。 – NewToJS

関連する問題