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 时,我会收到一条带有“未定义”的警报。

最终,我想在 spinner 元素上调用 toggleClass()。因此,为什么我要尝试使用 $(this)。

我对 jQuery 比较陌生 - 有人可以帮助解释为什么 $(this) 不起作用吗?

4

1 回答 1

1

.id不是 jquery 对象的有效属性。要获取元素的 id,请使用.attr(): $(this).attr("id")

.attr()方法,如果只提供一个参数,则获取相应属性的值。如果提供了第二个参数,它将将该值更改为提供的第二个参数。

于 2013-02-23T23:05:41.303 回答