Javascript 将字符串的值传递给运行函数
我有一个要加载的函数Javascript 将字符串的值传递给运行函数,javascript,ajax,tostring,Javascript,Ajax,Tostring,我有一个要加载的函数 function goLocation(val){ console.log(typeof val); console.log(val); } 使用ajax读取、传输到json并在div中插入所需数据。 我在ajax调用中的代码如下所示: x+="<i class='far fa-play-circle' onclick='goLocation(String("+myObj[i].video_id+"))'></i>
function goLocation(val){
console.log(typeof val);
console.log(val);
}
使用ajax读取、传输到json并在div中插入所需数据。
我在ajax调用中的代码如下所示:
x+="<i class='far fa-play-circle' onclick='goLocation(String("+myObj[i].video_id+"))'></i> "
x+=“”
但如果我单击元素,我会出现如下错误:
movie.php:1未捕获引用错误:未定义ANE1
在HTMLElement.onclick(movie.php:1)上,onclick@movie.php:1 movie.php:1未捕获引用错误:ANE2未定义
在HTMLElement.onclick(movie.php:1)
下一次尝试:
x+="<i class='far fa-play-circle' onclick='goLocation(String('"+myObj[i].video_id+"'))'></i> "
x+=“”
或:
x+=“”
给出错误:
未捕获的语法错误:输入意外结束
问题是myObj[i].video_id是一个没有值的变量,我知道我必须将该对象转换为字符串,但我不知道如何…当ES6是一个选项时,您可以执行以下操作:
x += `<i class="far fa-play-circle" onclick="goLocation('${myObj[i].video_id}')"></i>`
x+=``
是一个选项,如果不是,则必须转义两种引号之一:
x += '<i class="far fa-play-circle" onclick="goLocation(\'' + myObj[i].video_id + '\')"></i>'
x+=''
但是,通过DOM API创建元素和/或使用事件侦听器设置事件的解决方案可能更简洁。您需要额外的引号,否则您的结果是
onclick='goLocation(String(anes1))'
,您可以清楚地看到它是错误的。更好的是,不要使用内联事件处理程序。知道怎么做吗?我提出了我的问题,几乎没有其他旅行社一直在关注产出onclick='goLocation(String('anes1'))'
是无效的嵌套引号,只留下goLocation(String(作为您的JavaScript,这是一个错误,而不是把HTML放在一个字符串中,考虑使用DOMAPI,如<代码> CuraEngult和 StestAtgult。现在我将数据转换为数字,这样就给了我现有的结果。但是稍后我会检查您的解决方案。
x += '<i class="far fa-play-circle" onclick="goLocation(\'' + myObj[i].video_id + '\')"></i>'