簡體   English   中英

Javascript:如何更改頁面中所有鏈接的樣式?

[英]Javascript: how to change the style of all links in a page?

我正在嘗試通過Javascript更改頁面中所有鏈接的樣式。

我嘗試了這兩種方法,但均未成功:

document.links.style.cursor = "wait";
document.getElementsByTagName(a).style.cursor = "wait";

我究竟做錯了什么?

var allLinks = document.links || document.getElementsByTagName('a');
for(var n=0;n<allLinks ;n++)
    document.allLinks [n].style.cursor = "wait";

document.links是元素數組,因此document.links.style.cursor = "wait"等於[link1,link2].links.style.cursor = "wait"
關於document.getElementsByTagName(a) :語法錯誤,您忘記了引號。 正確的是document.getElementsByTagName("a")

var style = document.createElement("style");
document.head.appendChild(style);
try {
  style.innerHTML = "a { cursor: wait; }";
}
catch (_ie) {
  style.styleSheet.cssText = "a { cursor: wait; }";
}

當然,您也可以預先計划需要更改鏈接的可能性,並預先加載靜態樣式表,如下所示:

.wait-links a { cursor: wait; }

然后,每當您將類“ wait-links”添加到<body> (或您喜歡的任何容器)時, <a>標記都將受到影響。 這比遍歷元素更改其個人樣式的效率要高得多(可能),盡管如果鏈接不多,則可能無關緊要。

在我看來,將樣式表用於此類事情是一種更好的做法。 實際上,在這種情況下,最好不要將類稱為“ wait-links”,而應使用描述實際情況的一個或多個單詞。 然后,您的JavaScript代碼只需通過添加(或刪除)類來建立情況,然后樣式表控制外觀的更改。 如果您決定在某些情況下需要鏈接更改顏色或變得不可見,則可以這樣做,而不必在腳本中扎根尋找樣式更改。

使用JQuery和“ .css”方法無需使用for循環,從而簡化了代碼。

$('a').css("cursor","wait");

暫無
暫無

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

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