0

我是一个 JavaScript 新手,只是做一个小脚本,这样我就可以每隔几天旋转一个图像 + 链接。我 90% 确定我的错误出现在代码的最后一行 - 似乎与使用引号的方式有关(这让我很困惑)。

正确的代码+解释在哪里以及为什么使用引号将不胜感激!

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
today = new Date();
date = today.getDate();
date = date - date%9;
date = date/9;
date = date%3;

arday = new Array("image 1", "image 2", "image 3");

linkday = new Array("link 1", "link 2", "link 3");

document.write("<a href= '" + linkday[date] + target="_blank" ><img src='" + arday[date] "'/> </a>");
// End -->
</SCRIPT>
4

3 回答 3

3

document.write您需要转义一些引号并在语句中添加一些其他引号:

document.write("<a href='" + linkday[date] + "' target='_blank'><img src='" + arday[date] "' /></a>");

当你使用变量时,你还应该使用它var来防止它们自动附加到全局命名空间。在这种情况下,没有明显的区别,但如果上面的代码在一个函数中,就会有区别。因此,以下变量分配将是首选:

var today = new Date();
var date = today.getDate();
date = date - date % 9;
date /= 9;
date %= 3;

var arday = ["image 1", "image 2", "image 3"];
var linkday = ["link 1", "link 2", "link 3"];

顺便说一句,要使用的正确标签是

<script type="text/javascript">

language已被弃用。但是,如果这是您使用的文档类型,则可以在 HTML5 中省略属性type

还有评论

<!-- Begin
...
// End -->

可以删除,因为它们在现代浏览器中没有多大用处,并且如果浏览器完全遵循 XHTML,实际上确实会注释掉脚本。

于 2012-05-25T00:11:07.050 回答
2

从正确的字符串开始并添加内容

<a href="" target="_blank" ><img src=""/></a>

用单引号括起来,因为上面的字符串使用双引号。

'<a href="" target="_blank" ><img src=""/></a>'

添加第一个变量引用

'<a href="' + linkday[date] + '" target="_blank" ><img src=""/></a>'

添加第二个变量

'<a href="' + linkday[date] + '" target="_blank" ><img src="' + arday[date] + '"/></a>'

将其包装在 document.write

document.write('<a href="' + linkday[date] + '" target="_blank" ><img src="' + arday[date] + '"/></a>');
于 2012-05-25T00:13:17.373 回答
2
  • language属性被浏览器忽略,删除它。甚至type属性也可以省略。
  • 如果您不将此页面解析为 XML,请删除<!-- -->
  • 使用数组文字而不是new Array()
  • var声明变量时使用
  • 使用逗号链接变量声明。注意一个var和一系列变量声明。
  • 尽管接受单引号,但在 HTML 中,""对属性值使用双引号。
  • 为避免转义双引号,请将字符串用单引号括起来。
  • <左括号和标签名称之间不得有空格。
  • 属性名称、等号和开引号之间不得有空格。

这是一个干净的代码

<script>
    var today = new Date(),
        date = today.getDate(),
        arday = ["image 1", "image 2", "image 3"],
        linkday = ["link 1", "link 2", "link 3"];

    date = date - date % 9;
    date = date / 9;
    date = date % 3;

    document.write('<a href="' + linkday[date] + '" target="_blank" ><img src="' + arday[date] + '" / ></a>');​
</script>
于 2012-05-25T00:14:09.150 回答