这个JavaScript字符串出了什么问题?

时间:2012-05-25 00:07:12

标签: javascript html

我是一个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>

3 个答案:

答案 0 :(得分: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 has been deprecated.但是,HTML5中可以省略type属性 ,如果这是您正在使用的文档类型。

另外,评论

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

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

答案 1 :(得分: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>');

答案 2 :(得分:2)

  • 浏览器会忽略language属性,将其删除。甚至可以省略type属性。
  • 如果您未将此页面解析为XML,请删除<!-- -->
  • 使用数组文字而不是new Array()
  • 声明变量时使用var
  • 使用逗号进行链变量声明。注意一个var和一系列变量声明。
  • 虽然接受单引号,但在HTML中,对属性值使用双引号""
  • 为避免转义双引号,请用单引号括起字符串。
  • 开括号<与标签名称之间不得有空格。
  • 属性名称,等号和开头引号之间不能有空格。

Here's a cleaned code

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