JavaScript img src基于函数变量

时间:2013-07-01 02:29:53

标签: javascript

我试图让图像的src基于sky + gatMap()+。jpg src应该是sky#.jpg,其中#是getMap()的值。 我在引用或其他方面遇到麻烦,我在这里做错了什么?

<script type="text/javascript">
    document.write("<img id='sky' src='sky+mapNum()+.jpg' alt='' />");
  </script>

这是一个javaxcript书中的案例问题。它没有告诉我如何做到这一点。

6 个答案:

答案 0 :(得分:4)

document.write('<img id="sky" src="sky' + mapNum() + '.jpg" alt="" />');

应该这样做。根据需要打开/关闭报价。对文字字符串引号和字符串结尾引号使用不同的引号,或根据需要使用\进行转义。

我还应该指出,通常不鼓励使用document.write()。考虑以其他方式操纵DOM。此外,如果从mapNum()返回任意字符串,则可能生成无效的HTML,如果该值可能来自请求参数,甚至可能会自行打开XSS攻击。您应该尽可能直接编辑元素的属性。

答案 1 :(得分:3)

<script type="text/javascript">
  document.write("<img id='sky' src='sky"+mapNum()+".jpg' alt='' />");
</script>

答案 2 :(得分:1)

<script type="text/javascript"> document.write("<img id='sky' src='sky"+mapNum()+".jpg' alt='' />"); </script>

你需要先在+加号之前打破字符串,然后再加上一个双加号,然后在下一个加号后重新开始。

答案 3 :(得分:0)

您的变量包含在字符串中,并且被解释为HTML而不是JavaScript。试试这个:

<script type="text/javascript">
  document.write("<img id='sky' src='sky" + mapNum() + ".jpg' alt='' />");
</script>

答案 4 :(得分:0)

放入“”引号后,它变成了一个字符串,这意味着它不会打印任何在打印时打印的值。所以你应该记住在哪里使用“”引号。

<script type="text/javascript">
document.write("<img id='sky' src='sky'"+mapNum()+".'jpg' alt='' />");
</script>

答案 5 :(得分:0)

<script type="text/javascript">
    document.write("<img id='sky' src='sky" + mapNum + ".jpg' alt='' />");
</script>

mapNum是一个不是函数的变量,所以后面没有()。这本书很模糊。