Javascript 将函数参数作为字符串在函数本身中使用时遇到问题

Javascript 将函数参数作为字符串在函数本身中使用时遇到问题,javascript,html,function,Javascript,Html,Function,标题可能很混乱,但让我解释一下。我在左侧有一个图片列表,我在所有图片上都添加了一个onclick功能,以便在右侧显示图片和一些信息。我猜左边是一些缩略图,右边是一个更大的版本,不过一次只能有一个。因此,我使用一个包含所有文件名的数组和一个循环将左侧图片放入容器中: var ancients = [ "hunter", "strangling-vines", "quicksand", "earthquake", "eruption" ] var ancien

标题可能很混乱,但让我解释一下。我在左侧有一个图片列表,我在所有图片上都添加了一个
onclick
功能,以便在右侧显示图片和一些信息。我猜左边是一些缩略图,右边是一个更大的版本,不过一次只能有一个。因此,我使用一个包含所有文件名的数组和一个循环将左侧图片放入容器中:

var ancients = [
    "hunter",
    "strangling-vines",
    "quicksand",
    "earthquake",
    "eruption"
]
var ancients_list = "";
for (i = 0; i < ancients.length; i++) { 
    ancients_list += '<a id="' + ancients[i] + '"><img src="img/the-ancients/' + ancients[i] + '.png" height="120px" onclick="ancients(' + ancients[i] + ')" /></a>';
}
document.getElementById("ancients").innerHTML = ancients_list;
这根本不起作用。我可以用一个按钮调用HTML文件中的函数,让name参数是一个数字,然后它会显示在右边;这就像我试图在循环中定义的name参数不希望插入到右侧的图像/文本中一样。在最终的HTML页面中,图像行工作正常;我明白了:

<img src="img/the-ancients/hunter.png" height="120px" onclick="ancients(hunter)">

我尝试了很多东西,但我不知道也找不到我做错了什么,我在思考
古人
函数的参数和参数,但我真的不确定

另外,当我将
typeofname2
放在info部分时,它返回为
String

,因为

onclick="ancients(' + ancients[i] + ')"
呈现为

onclick="ancients(hunter)"
因此,您的代码要查找的是变量猎人,而不是字符串。您需要在字符串周围添加引号

onclick="ancients(\'' + ancients[i] + '\')"
现在它将呈现为

onclick="ancients('hunter')"
现在,如果字符串包含
,它将失败

理想情况下,您只需使用数据属性并添加不引人注目的事件处理程序

功能辅助设备Fnc(名称){
var name2=字符串(名称);
document.getElementById(“info”).innerHTML='这篇文章的名字是'+name2;
}
变量古人=[
“猎人”,
“扼杀藤蔓”,
“流沙”,
“地震”,
“喷发”
]
var ancients_list=“”;
对于(i=0;i
a{
显示:块;
}


在值周围添加引号,即onclick=“ancients('hunter')”应该可以做到这一点。当然,在构建图像时必须这样做。如果hunter应该是字符串(即实际值,而不是变量),那么按照@Will所说的做。我不明白怎么会是这样<代码>猎人
未定义否则。执行此操作:古人列表+='';谢谢,成功了@威利普,正是我想要的,谢谢你的帮助!我不知道如何在那行代码中再添加一个,所以现在我知道可以用\'完成。再次感谢!
onclick="ancients('hunter')"