你需要在链接标签中引用文本,否则它会尝试并失败地查找名为scotislands
的变量。
onClick="flag('scotislands');"
然后将innerHTML的赋值更改为以下内容:
document.getElementById("flag").innerHTML="<img src='images/flags/" + nation + ".jpg'>"
请注意在 URL 中使用单引号,但在每个内联文本位周围使用双引号。
一般来说,我更喜欢不显眼的东西(标记中没有代码)。使用框架,例如 jQuery,我会这样做:
<a href="#scotislands" class="flag-identifier">Scotislands</a>
然后使用JavaScript,我会为所有这样的链接添加一个处理程序:
$(function() {
$('a.flag-identifier').click( function() {
var flag = $(this).attr('href').replace('#','');
$('#flag').html( '<img src="images/flags/' + flag + '.jpg" />' );
return false;
});
});
这将添加一个点击处理程序,从锚点的 href 中获取标志名称,然后用国家名称添加到图像 URL 中构建的图像替换命名元素 flag
的内容。请注意,我省略了全局变量 nation
,但如果需要,您也可以在点击处理程序中轻松设置它。