HTML設(shè)置點(diǎn)擊超鏈接變成灰色的方法:首先加載查找超鏈接的函數(shù);然后用【<p>】替換了【<a>】標(biāo)簽;最后在<p>標(biāo)簽中內(nèi)嵌了【<font>】標(biāo)簽,【<font>】的顏色設(shè)為了灰色。
本教程操作環(huán)境:windows7系統(tǒng)、html5版,DELL G3電腦。
HTML設(shè)置點(diǎn)擊超鏈接變成灰色的方法:
一、尋找HTML超鏈接
要想讓超鏈接失效變灰色,首先要做的事情是找到超鏈接。尋找超鏈接的方法有很多,如果采用W3C的方法,就是如下寫法:
document.getElementsByTagName("a")
如果覺(jué)得W3C的方法太長(zhǎng)了或者不美觀,可以使用一些JavaScript庫(kù),例如jQuery或者M(jìn)ootools。這樣獲取超鏈接就非常簡(jiǎn)潔。
您也可以使用在<a></a>
標(biāo)簽上加上ID的方式,但是有個(gè)小缺點(diǎn)。如果您是針對(duì)全篇的超鏈接,這種加ID的方式就增大了工作量。
二、改變HTML超鏈接
找到超鏈接之后,接下來(lái)要做的事情就是改變超鏈接,使其失效并且變成灰色。讓超鏈接失效的方式有好幾種,最常見(jiàn)的就是把href屬性設(shè)為“#”。實(shí)際上這種方式根本就沒(méi)有改變超鏈接,只是使得href屬性沒(méi)有指向一個(gè)合理的鏈接而已。
真正改變超鏈接的方式是讓其變?yōu)槠胀ㄎ谋?,而且文本的字體顏色是灰色的。如同以下效果:
好了,閑話就不扯了,讓我們進(jìn)入正題。下面的代碼是HTML文檔一加載完畢就立刻執(zhí)行函數(shù)。
var addLoadEvent=function(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } };
這個(gè)函數(shù)是為了后面加載查找超鏈接的函數(shù)。下面是獲取HTML文檔中超鏈接,并且使其失效變灰色。
var getLinks=function() { if(!document.getElementsByTagName)return false; if(!document.createElement)return false; if(!document.getElementsByName("a"))return false; var links = document.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { //判斷href屬性是否包含“#”符號(hào) if ((links[i].getAttribute("href").indexOf("#")) >= 0) { var para = document.createElement("p"); var fon = document.createElement("font"); fon.setAttribute("color", "#808080"); fon.innerHTML =links[i].lastChild.nodeValue; var content = para.appendChild(fon); replaceEach(links[i], content); } else { links[i].style.color = "990033"; } } };
通過(guò)閱讀以上代碼,相信讀者已經(jīng)明白了。改變超鏈接的方式實(shí)際上是用<p>替換了<a>標(biāo)簽。并且在<p>標(biāo)簽中內(nèi)嵌了<font>標(biāo)簽,<font>的顏色設(shè)為了灰色,就達(dá)到了我們想要的效果。
其中用到了替換函數(shù)replaceEach,下面給出replaceEach函數(shù)的代碼。
//替換HTML元素 var replaceEach=function(targetNode, newNode) { var targetParentNode = targetNode.parentNode; var newParentNode = newNode.parentNode; //若 targetParentNode 和 newParentNode 都存在父節(jié)點(diǎn) if (targetParentNode && newParentNode) { targetParentNode.replaceChild(newNode.cloneNode(true), targetNode); } else { newParentNode.replaceChild(targetNode, newNode); } };
最后別忘記了最重要的一步,在addLoadEvent函數(shù)中加載查找函數(shù),如下:
addLoadEvent(getLinks);
相關(guān)學(xué)習(xí)推薦:html視頻教程