大家好,感谢您的光临,
执行此操作的正确方法是什么:
<script language="javascript">
function flag(nation)
{
this.nation=nation;
document.getElementById("flag").innerHTML="<img src='images/flags/'+nation+'.jpg'>";
}
</script>
在链接标签中显示:onClick =“flag(scotislands)”;图像名称为scotislands.jpg
非常感谢, 乙
答案 0 :(得分:2)
在以下行中,您的字符串标识符已混淆:
document.getElementById("flag").innerHTML="<img src='images/flags/'+nation+'.jpg'>";
应该是:
document.getElementById("flag").innerHTML='<img src="images/flags/'+nation+'.jpg">';
修改强>
此外,正如Joel发现的那样,onClick="flag(scotislands)";
应为onClick="flag('scotislands')";
答案 1 :(得分:0)
您需要引用链接标记中的文本,否则会尝试找不到名为scotislands
的变量。
onClick="flag('scotislands');"
然后将innerHTML的赋值更改为以下内容:
document.getElementById("flag").innerHTML="<img src='images/flags/" + nation + ".jpg'>"
请注意在内部使用单引号来设置网址,但在每个内联文本位周围加上双引号。
但一般来说,我更喜欢不引人注目的东西(标记中没有代码)。使用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获取标志名称,然后将命名元素flag
的内容替换为通过将国家/地区名称添加到图像URL构建的图像。请注意,我省略了全局变量nation
,但如果需要,您也可以在点击处理程序中轻松设置它。
答案 2 :(得分:0)
您正在设置innerHTML的字符串未正确引用。试试这个:
document.getElementById("flag").innerHTML="<img src='images/flags/'+nation+'.jpg'>";
此外,您的onClick正在尝试发送一个名为“scotislands”的不存在的对象。试试这个:
onClick="flag('scotislands');"
答案 3 :(得分:0)
function flag(nation) {
var myFlag = document.getElementById("flag").getElementsByTagName("img")[0];
myFlag.src = "images/flags/"+nation+".jpg";
}
答案 4 :(得分:0)
这取决于你所说的“正确”。我怀疑你使用innerHTML
并不意味着“符合公认标准,例如DOM”,但这就是你从我那里得到的:
function flag(nation) {
var flagEl = document.getElementById("flag");
while (flagEl.firstChild) {
flagEl.removeChild(flagEl.firstChild);
}
var img = document.createElement("img");
img.src = "images/flags/" + nation + ".jpg";
flagEl.appendChild(img);
}