为什么 JS 变量未定义
Why is JS variable undefined?
这很奇怪 - 我一定错过了什么!我有一个简单的js东西,就像这样;
<select onchange='my_function(this.options[this.selectedIndex].value),'"my_text'"'>
JS很简单;
function my_function(selected, text) {
var link="file.php?var1="+selected+"&var2="+text;
document.write(link);
}
但是我一直得到链接=文件.php?var1=selected&var2=undefined。
我有一个几乎相同的功能,工作正常!
你选择的html应该是这样的:
<select onchange="my_function(this.options[this.selectedIndex].value,'my_text')">
您过早关闭函数调用。另外,请注意,我已将外部引号切换为双引号,将内引号切换为单引号。您不需要转义内部引号,并且属性是双引号而不是单引号更传统。
您没有将第二个值传递给函数。 它位于函数调用之外(并且仅充当无效标记)。 尝试:
<select onchange="my_function(this.options[this.selectedIndex].value, 'my_text')">
我在这里更改了两件事:
- 将
my_text
值移动到函数调用中。 - 更改了引号。 HTML需要双引号,JavaScript可以使用单引号或双引号。 因此,在这种情况下,在内联 JavaScript 中使用双引号和内联 JavaScript 中的单引号会更清楚。
替换:
<select onchange='my_function(this.options[this.selectedIndex].value),'"my_text'"'>
有了这个:
<select onchange='my_function(this.options[this.selectedIndex].value),"my_text"'>
因为'
是一个转义字符,它会导致您的文本作为my_text
而不是"my_text"
传递,并且在第一个中不是正确的字符串。
我认为您尝试在字符串上添加"
引号,但查询字符串默认情况下是一个字符串,如果您仍然需要,则无需添加引号,请尝试:
<select onchange='my_function(this.options[this.selectedIndex].value),"'"my_text'""'>
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象