Javascript 未捕获的类型错误:无法读取 Jquery 中未定义的属性“修剪”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32733423/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Uncaught TypeError: Cannot read property 'trim' of undefined in Jquery
提问by Saravanan Arunagiri
In Jquery replace the space character to '%20'. but working in other forms not in single form. in consists header as
在 Jquery 中,将空格字符替换为 '%20'。但以其他形式而不是单一形式工作。在包含标题为
<header>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
</header>
the code using in other form its working well.
以其他形式使用的代码运行良好。
var vname = $("#EarningsTypes").val();
vname = vname.trim().replace(/ /g, '%20');
jQuery.noConflict();
回答by Tushar
You're getting error
你得到错误
Uncaught TypeError: Cannot read property 'trim' of undefined in Jquery
未捕获的类型错误:无法读取 Jquery 中未定义的属性“修剪”
that means, the variable vname
is undefined
. To prevent this error from occurring, you can use the ternary operator to set the default value of the string to empty string when it is undefined
.
这意味着,变量vname
是undefined
。为防止出现此错误,可以使用三元运算符将字符串的默认值设置为空字符串时undefined
。
var vname = $("#EarningsTypes").val() == undefined ? '' : $("#EarningsTypes").val().trim();
vname = vname.replace(/ /g, '%20');
You can also use ||
to set the default value
也可以使用||
来设置默认值
var vname = $("#EarningsTypes").val() || '';
If you're using an older browser that doesn't support trim
, you can use polyfill from MDN
如果您使用的是不支持 的旧浏览器,则trim
可以使用MDN 中的 polyfill
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}