不能在Javascript函数中传递变量
Cant pass variable in Javascript function
我正在构建一个字符串并用它创建一个表:
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog();" >'+ oListItem.get_item('Title') +'</a>' + '</td>'
当我单击链接时,该函数会触发。
我需要在函数VarTest()
中传递一些 Javascript 变量,所以我编写了代码:
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog('+ VarTest + ');" >'+ oListItem.get_item('Title') +'</a>' + '</td>'
但是什么也没发生,我已经尝试了各种选择,但没有任何效果。
这有效(使用 +),但随后什么都没有通过。
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog('+')" >'+ oListItem.get_item('Title') +'</a>' + '</td>'
var VarTest = "my text";
function portal_openModalDialog(Title) {
alert(Title);
}
有什么想法吗?
更新:(这现在适用于单参数)
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog1("'+oTitle+'")" >'+ oListItem.get_item('Title') +'</a>' + '</td>';
但如果我传递 2 个参数,则不会:
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog1("'+oTitle,oDescription+'")" >'+ oListItem.get_item('Title') +'</a>' + '</td>';
html 呈现在屏幕上:
<a href="#" onclick="portal_openModalDialog1("Bank of England</tr><tr><td><img src='../Style Library/Icons/Noticeboard_News.png' /></td><td><a href="#" onclick="portal_openModalDialog1("Investor centre - Reed Elsevier</tr><tr><td><img src='../Style Library/Icons/Noticeboard_News.png' /></td><td><a href="#" onclick="portal_openModalDialog1("This is some news</tr></table> </body>
这是html页面的源代码(看不出为什么它无法正确呈现):
table += '<td>'+ '<a href="#" onclick="portal_openModalDialog1("'+oTitle+'")" >'+ 'click here' +'</a>' + '</td>';
表 += "+ "+ "点击这里" +"" + ";
onclick
属性的内容被解析为 JavaScript。你可以只传递变量,不涉及魔法:
<script>
var myVar = 'foo';
function myFunction(aVar) {
alert('The variable: ' + aVar);
}
</script>
<button onclick="myFunction(myVar)">Click me</button>
您可以传递多个变量,只需确保逗号(,
)是生成的HTML的一部分,而不是原始JavaScript代码中的逗号:
<script>
var myFirstVar = 'foo';
var mySecondVar = 'bar';
function myFunction(aVar, anotherVar) {
alert('The first variable: ' + aVar + ', and the second: ' + anotherVar);
}
</script>
<button onclick="myFunction(myFirstVar, mySecondVar)">Click me</button>
如果要在页面中生成按钮,并且确定变量是字符串,则可以继续引用参数:
document.write('<button onclick="myFunction("' + myFirstVar + '", "' + mySecondVar + '")">Generated button 1</button>');
但是,直接传递变量更容易且更不容易出错:
document.write('<button onclick="myFunction(myFirstVar, mySecondVar)">Generated button 2</button>');
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行