5

下面的代码使用 this.value 来获取表单下拉列表的值。我通常只看到 .val() 使用过。以下方式是否可以接受跨浏览器(尤其是旧版本的 IE)?谢谢!

    $(':input', '#all').each(function() {
       alert(this.value);                 
    });
4

2 回答 2

6

是的,它是可以接受的,更具可读性,并且比调用更便宜(更快)$(this).val()

简单来说,$(this)指的是一个 jQuery 对象,而this指的是一个 DOM 元素。

此处的常见问题解答简要介绍了它(在“了解您的 DOM 属性和功能”下)

当原生 DOM API 足够时,你应该使用普通的“this”,当你需要 jQuery 的帮助时,你应该使用 $(this)。

我还建议阅读以下内容:

$(this) 与 jQuery 中的 this

jQuery:'$(this)' 和 'this' 有什么区别?

何时使用 Vanilla JavaScript 与 jQuery?

利用 jquery 的强大功能来访问元素的属性

这揭开了神秘面纱

于 2012-10-11T07:30:17.537 回答
-1

这应该工作

对于 JQuery val,您需要$(this).val()

于 2012-10-11T07:26:14.417 回答