gpt4 book ai didi

javascript - this.value 和 $(this).val() 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 02:51:30 26 4
gpt4 key购买 nike

只是想知道 jQuery 中的 this.value$(this).val() 有什么区别?我意识到当我 console.log this.value 和 console.log $(this).val() 时,它们每个的结果都是不同的,这意味着 this.value$(this).val()

最佳答案

当您调用.val()时如果没有参数,结果几乎总是相同。可以看源码here ,搜索val: function( value ) { :

val: function( value ) {
var hooks, ret, valueIsFunction,
elem = this[ 0 ];

if ( !arguments.length ) {
if ( elem ) {
hooks = jQuery.valHooks[ elem.type ] ||
jQuery.valHooks[ elem.nodeName.toLowerCase() ];

if ( hooks &&
"get" in hooks &&
( ret = hooks.get( elem, "value" ) ) !== undefined
) {
return ret;
}

ret = elem.value;

// Handle most common string cases
if ( typeof ret === "string" ) {
return ret.replace( rreturn, "" );
}

// Handle cases where value is null/undef or number
return ret == null ? "" : ret;
}

return;
}
// other logic for when there are arguments

如果该元素确实存在,并且不存在valHooks ,那么唯一真正能做任何事情的实质性行是

ret = elem.value;

最后将返回。

请注意,您可以调用.val()在包含 no 元素的 jQuery 集合上,在这种情况下将返回空字符串。 (相反,尝试访问不存在元素的 .value 将抛出错误)

valHooks用于检索无法通过 .value 访问的某些元素的值,例如<select> s,但这仅与极其古老的过时浏览器相关 - 如果脚本编写者已手动分配给 $.valHooks 的属性.

关于javascript - this.value 和 $(this).val() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59559985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com