gpt4 book ai didi

Javascript方法不会被执行

转载 作者:行者123 更新时间:2023-11-28 15:56:25 25 4
gpt4 key购买 nike

我有一个 JavaScript 方法不会被执行..已经通过 Firebug 进行了调试,但我不知道问题可能是什么..

我有一个表格,其中的单元格应填充视频链接。变量 videoPath 包含链接。 vids.video 是我的对象。

var vids = {"video":
[
{
"name": "Video 1",
"path": "videos/band/vid1.f4v"
},
{
"name": "Video 2",
"path": "videos/band/vid2.f4v"
}
]
};

var i = 0;
for (property in vids.video) {
if(vids.video.hasOwnProperty(property)) {
videoPath = vids.video[i].path;
$('table.videos tr').append("<td><a class='videolink' href='javascript:void(0)' onclick='PlayVideo("+videoPath+")'>some divs</a></td>");
}
i++;
}


function PlayVideo(vidd) {
alert(vidd);
}

当我从方法括号中删除 vidd 时,它工作正常:

$('table.videos tr').append("<td><a class='videolink' href='javascript:void(0)' onclick='PlayVideo()'>some divs</a></td>");

function PlayVideo() {
alert("It works!");
}

有什么想法吗?

最佳答案

您必须在 PlayVideo 调用的参数两边添加单引号。

$('table.videos tr').append("<td><a class='videolink' href='javascript:void(0)' onclick='PlayVideo(\\'"+videoPath+"\\')'>some divs</a></td>");

请注意双反斜杠,当您在 javascript 中指定应包含反斜杠的文字字符串时,双反斜杠是必需的。需要后者,因为 html 表示级别的结果在带有单引号分隔符的文字中包含单引号。

当然,您可以用双引号将 videoPath 参数括起来 - 这里您可以少一级的字符转义,因为您只需将参数中的双引号转义到 append 调用,而无需在 html 级别转义文字中的双引号。

$('table.videos tr').append("<td><a class='videolink' href='javascript:void(0)' onclick='PlayVideo(\""+videoPath+"\")'>some divs</a></td>");

关于Javascript方法不会被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com