我有这样的功能:
function ban_rot(){
var bnr = new Array();
bnr[0] = "/Graphics/adv/businesscrown.gif";
bnr[1] = "/Graphics/adv/webbdesigna.jpg";
num = bnr.length - 1;
i = Math.round(Math.random(bnr) * num);
return '<img src=\"' + i + '\" alt=\"\" border=\"1px\" style=\"border-color:#000;\">';
}
然后我有一个HTML代码:
<td align="center"><a href="http://www.domain.com" class="links4">
<script type="text/javascript">return ban_rot();</script>
</a>
</td>
以上不起作用,即没有任何显示。空。
有什么想法吗?
由于
答案 0 :(得分:5)
return
与PHP中的echo
不同。如果要输出到HTML中,则需要创建一个元素然后更新它(例如,通过编辑它的innerHTML
属性)。
<td align="center"><a href="http://www.businesscrown.com" class="links4">
<div id="banner"></div>
<script type="text/javascript">
document.getElementById('banner').innerHTML = ban_rot();
</script>
</a>
</td>
答案 1 :(得分:2)
由于ban_rot()函数返回一个String而你想显示String,你可能需要这样做:
<script type="text/javascript">document.write( ban_rot());</script>
答案 2 :(得分:1)
我认为你将服务器端模板范例与客户端JavaScript混为一谈。即使你从JavaScript函数返回一个字符串,就像你所做的那样,它不会神奇地将该字符串插入到DOM中并删除<script>
标记。
相反,您需要使用DOM API方法将函数返回的字符串转换为实际的HTML元素,如下所示:document.getElementById('some_element_id').innerHTML = ban_rot();
答案 3 :(得分:0)
只返回HTML字符串不会打印它。 你需要做一些像document.write()。
答案 4 :(得分:0)
“return”用于从函数返回值。您无法使用它将代码放入页面中。你可以使用document.write(...)但我强烈建议你学习jQuery。它使得修改html变得更加容易。
答案 5 :(得分:0)
你不能只在文件中间返回。
<td align="center">
<a href="http://www.domain.com" class="links4" id='myLink'></a>
<script type="text/javascript">
document.getElementById('myLink').innerHTML = ban_rot();
</script>
</td>
请注意,您必须为您的链接指定一个ID,以便可以引用它(或选择另一个wya来查找它)。
完成所有这些操作的首选方法是使用DOM方法构造新元素。
function ban_rot() {
var bnr = new Array();
bnr[0] = "/Graphics/adv/businesscrown.gif";
bnr[1] = "/Graphics/adv/webbdesigna.jpg";
num = bnr.length - 1;
i = Math.round(Math.random(bnr) * num);
var img = document.createElement('img');
img.src = i.toString();
img.style.border = '1px solid #000';
var myLink = document.getElementById('myLink');
myLink.appendChild(img);
}
然后您不需要返回任何内容 - 该方法会将图像添加到链接中。
<td align="center">
<a href="http://www.domain.com" class="links4" id='myLink'></a>
<script type="text/javascript">ban_rot();</script>
</td>