0

スピナーコントロールの値が変更されたときに、その背景色を変更しようとしています。

私は次のコードを持っています:

<h2>SpinnerTest</h2>
<input id="spinner1" type="spinner" value="5" />
<input id="spinner2" type="spinner" value="10" />

<script type="text/javascript">
    //Line1:  $("input[type='spinner']").spinner({ min: 0, max: 25, stop: function () { alert(this.id); } });
    //Line2:  $("input[type='spinner']").spinner({ min: 0, max: 25, stop: function () { alert($(this).id); } });
</script>

Line1を使用すると、正しいスピナーコントロールIDでアラートが表示されます。ただし、Line2を使用すると、「undefined」というアラートが表示されます。

最終的には、スピナー要素でtoggleClass()を呼び出します。したがって、なぜ私は$(this)を使おうとしているのですか。

私はjQueryに比較的慣れていません-誰かが$(this)が機能しない理由を説明するのを手伝ってもらえますか?

4

1 に答える 1

1

.idjqueryオブジェクトの有効なプロパティではありません。要素のIDを取得するには、:を使用し.attr()ます$(this).attr("id")

この.attr()メソッドは、パラメーターが1つだけ指定されている場合、対応する属性の値を取得します。2番目のパラメーターが指定された場合、その値は指定された2番目のパラメーターに変更されます。

于 2013-02-23T23:05:41.303 に答える