簡體   English   中英

此JavaScript字符串有什么問題?

[英]What's wrong with this JavaScript string?

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

您需要轉義一些引號,並在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已棄用。 但是,如果您使用的是doctype,則可以在HTML5中省略type屬性。

另外,評論

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

可以刪除,因為它們在現代瀏覽器中沒有太多用處,並且如果瀏覽器完全遵循XHTML,則實際上注釋掉腳本。

從正確的字符串中添加內容

<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>');
  • 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM