Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串的值传递给运行函数_Javascript_Ajax_Tostring - Fatal编程技术网

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>'