2

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

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

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

4

6 回答 6

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

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

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

于 2013-07-01T02:32:25.587 回答
3
<script type="text/javascript">
  document.write("<img id='sky' src='sky"+mapNum()+".jpg' alt='' />");
</script>
于 2013-07-01T02:32:17.543 回答
1

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

您需要通过放置双引号来打破 + 加号之前的字符串,然后在下一个加号之后重新开始。

于 2013-07-01T02:34:25.023 回答
0

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

<script type="text/javascript">
  document.write("<img id='sky' src='sky" + mapNum() + ".jpg' alt='' />");
</script>
于 2013-07-01T02:34:12.923 回答
0

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

<script type="text/javascript">
document.write("<img id='sky' src='sky'"+mapNum()+".'jpg' alt='' />");
</script>
于 2013-07-01T02:39:43.183 回答
0
<script type="text/javascript">
    document.write("<img id='sky' src='sky" + mapNum + ".jpg' alt='' />");
</script>

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

于 2015-09-14T19:59:13.547 回答