jQuery(#id).val()与getElementById(#id).value

Jua*_*cio 24 javascript jquery

我一直在寻找,但我只能找到谈论其中一个的文章.哪一个更好?

我正在制作一个小型网络应用程序,性能不是一个大问题,因为没有什么复杂的事情发生.

我考虑使用jQuery的val()功能,因为它可能解决了我不知道的一些不一致,但是getElementById.value速度更快(尽管最终用户不会注意到.)

那么我应该使用哪一个?jQuery的非本机方法是否值得获得更高的兼容性?

Mat*_*att 33

使用jQuery().val()over 的最大优点document.getElementById().value是,如果没有匹配的元素,前者不会抛出错误,而后者将在哪里.如果没有匹配的元素document.getElementById()返回null,where-as jQuery()返回一个空的jQuery对象,它仍然支持所有方法(但val()将返回undefined).

没有使用不一致时,.value表单元素.但是,jQuery.val()标准化了用于在选择框中收集选定值的接口; 在标准HTML中,您必须使用.options[this.selectedIndex].value.

  • 实际上,在textarea`value中有换行符的浏览器之间存在一些不一致,即jQuery的`val()`规范化,尽管我宁愿它没有. (3认同)

pim*_*vdb 6

如果你也在使用<select>元素,那么.value将无法工作.val().

我不介意只是获得一个价值的表现.如果您想获得最佳性能,也许您根本不应该使用库.