返回函数时出现Javascript问题?

时间:2010-10-11 16:48:43

标签: javascript html

我有这样的功能:

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>

以上不起作用,即没有任何显示。空。

有什么想法吗?

由于

6 个答案:

答案 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>