Javascript函数writelink创建一个触发函数hiya的链接。它在我在脚本中定义和调用writelink时起作用。但是,我希望正文包含另一个调用writelink来创建链接的链接。此最终链接无法触发(但如果我用警报替换hiya,则有效)。我是一个新手,所以我希望它是显而易见的。主要的想法是我必须从代码创建一些链接,这些必须激活以执行更多的代码。 (如果你希望我以完全不同的方式做到这一点,请尝试给我一个完整的例子。)
<HTML>
<HEAD>
<script>
function hiya (num){
alert("hiya " + num);
}
function writelink (num){
var htmlstr = "<a href=\"#\" onclick=\"hiya(" + num + ");return false;\">link" + num + "</a>";
document.write(htmlstr);
}
writelink(1);
</script>
</HEAD>
<BODY>
<br>
<a href="#" onclick="writelink(3);return false;">link2</a>;
<br>
</HTML>
答案 0 :(得分:1)
document.write(htmlstr)
将使用您要插入的链接/ htmlstr
替换整个DOM。使用纯JavaScript来创建链接:
function writelink(num){
var link = document.createElement('a');
link.innerHTML='link '+num;
link.href='#';
link.onclick=hiya(num);
document.body.appendChild(link);
}
只需使用上面的代码替换writelink()
。
您通常希望将链接添加到某个元素而不只是<body>
,让我们说<div>
的ID为menu
:
var cnt = document.getElementById('menu');
cnt.appendChild(link);
<!doctype html>
<html>
<head>
</head>
<body>
<a href="#" onclick="writelink(2);">link2</a>
<script>
function hiya(num) {
alert("hiya " + num);
}
function writelink(num){
var link = document.createElement('a');
link.innerHTML='link '+num;
link.href='#';
link.onclick=function(e) {
hiya(num);
}
document.body.appendChild(link);
}
writelink(1);
</script>
</body>
</html>