我想将一个参数(即字符串)传递给Onclick函数.

目前,我要做的是:

'<input type="button" onClick="gotoNode(' + result.name + ')" />'

结果呢.例如,名称等于字符串"Add".

当我点击这个按钮时,我有一个错误,显示为"Add is not defined".由于此函数调用可以很好地与数字参数配合使用,因此我假设它与字符串中的符号""有关.

我如何解决这个问题?

推荐答案

看起来你是在用字符串构建DOM元素.你只需要在结果周围加上一些引号.姓名:

'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'

不过,您确实应该使用适当的DOM方法来实现这一点.

var inputElement = document.createElement('input');
inputElement.type = "button"
inputElement.addEventListener('click', function(){
    gotoNode(result.name);
});

​document.body.appendChild(inputElement);​

请注意,如果这是一个循环或其他什么,result将在事件触发之前更改,您需要创建一个额外的范围气泡来隐藏更改的变量.

Javascript相关问答推荐

为什么我会获取MUI Date TimePicker TypHelp:Value.isValid不是AdapterDayjs.isValid中的函数

在NextJS中使用计时器循环逐个打开手风琴项目?

强制执行useStatego struct 化变量[foo,setFoo]的命名约定?

在时间轴完整日历中显示日期标题

积分计算和 colored颜色 判断错误

如何修复循环HTML元素附加函数中的问题?

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

使用复选框在d3.js多折线图中添加或删除线条

Redux查询多个数据库Api reducerPath&

Exceljs:我们在file.xlsx(...)&#中发现了一个问题'"" 39人;

在Vite React库中添加子模块路径

康威的生活游戏规则在我的Javascript版本中不起作用.''我做错了什么?

数字时钟在JavaScript中不动态更新

如何从Intl.DateTimeFormat中仅获取时区名称?

ChartJs未呈现

禁用.js文件扩展名并从目录导入隐式根index.js时,找不到NodeJS导入模块

将异步回调转换为异步生成器模式

我想使用GAS和HTML将从Electron 表格中获得的信息插入到文本字段的初始值中

无法重定向到Next.js中的动态URL

JWT Cookie安全性