簡體   English   中英

如何用javascript更改鏈接的顏色?

[英]How to change the color of the links with javascript?

我想知道如何使用javascript操作頁面上的所有鏈接。 我可以使用document.getElementById(id)通過id獲取元素,但是如何獲取鏈接? 而且我如何獲得具有某個classname所有元素? 我想改變鏈接和類元素的顏色。

我的意思是這些鏈接:

<a href="http://www.google.com">This is a link</a>

以及具有類的元素的示例:

<span class="link">This is an element with a class</span>

請不要jquery。 我想要javascript。

簡單明了(純粹的JS也是如此!)

colorLinks("#00FF00");

function colorLinks(hex)
{
    var links = document.getElementsByTagName("a");
    for(var i=0;i<links.length;i++)
    {
        if(links[i].href)
        {
            links[i].style.color = hex;  
        }
    }  
}

如果它是您正在尋找的類名,並且您知道該標記,請使用此標記。

var elements = document.getElementsByTagName("span");
for(var j=0;j<elements.length;j++)
{
    if(elements[j].className === "your class here")
    {
        //do something
    }  
}

您還可以查看getElementsByClassNamequerySelectorAll 兩者都支持大多數新瀏覽器。

純JavaScript版本並不復雜:

var elements = document.getElementsByTagName('a');

for (var i = 0; i < elements.length; i++) {
    if (elements.className.split(/\s+/).indexOf('red') !== -1) {
        elements[i].style.color = 'red';
    }
}

對於現代瀏覽器:

var elements = document.querySelectorAll('a.red');

[].slice.call(elements).forEach(function(elem) {
    elem.style.color = 'red';
});

這是我更改所有超鏈接顏色(正常/懸停)的方式:

function changeTextHyperlinkColours(inputColorNormal, inputColorHover) { 

    var sheets = document.styleSheets;
    var slen = sheets.length; 

    for(var i=0; i<slen; i++) { 

        var rules = document.styleSheets[i].cssRules; 
        var rlen = rules.length; 

        for(var j=0; j<rlen; j++) { 

            if (rules[j].selectorText == 'a') {
                rules[j].style['color'] = inputColorNormal;
            } 

            if (rules[j].selectorText == 'a:hover') {
                rules[j].style['color'] = inputColorHover;}
            }
        } 
    }
}

您可以使用document.getElementsByTagName("a") 此函數返回頁面中<a>元素的數組。 遍歷此數組,並在每個元素中使用.style.color = "#000000"

您還可以在范圍中嵌入鏈接文本並更改顏色

<a href='www.mydomain.com'><span onclick='this.style.color="red"'>Visit Us</span></a>

更新:我仍然建議使用jQuery,但是,如果你想學習如何不用它,我建議你去這個網站。 這顯示了當您將鼠標懸停在鏈接上時如何更改鏈接顏色,但您可以輕松地根據您的具體情況進行推斷: Javascript更改鏈接文本顏色onmouseover

-

Ottomanlast有一個關於檢查jQuery來幫助你完成這項任務的好處(盡管可以在不使用庫的情況下完成)。 但是,就像你有一個他正在談論的例子,這里是你如何使用jQuery更改鏈接顏色。

$('.linkClass').click(function(){
      $(this).css('color', 'green');
});

此示例在單擊時更改特定鏈接的顏色。

$('a').css('color', 'green');

此示例將所有鏈接更改為綠色。

$('.linkClass').click(function(){
      $(this).removeClass('oldClass');
      $(this).addClass('newClass');
});

這與第一個示例的作用相同,但這會刪除並添加您已在其他位置定義的CSS類。 (我建議這種方法直接編輯CSS。)

無論如何,我想要的是,jQuery使得選擇非常容易,然后對HTML文檔中的對象進行更改。 你可能想看看它。

暫無
暫無

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

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