有沒有辦法改變一個特定的標籤與JavaScript或PHP(或其他)的所有HTML元素的特定屬性?例如,我想使用JavaScript更改頁面上的所有「<a>」元素以具有「target ='_ blank'」屬性。有什麼建議麼?更改所有標籤的HTML元素的屬性?
回答
以下jQuery代碼將增加一個目標=「_空白」屬性的所有錨(a)以元素頁面:
$(function() {
$('a').attr('target', '_blank');
});
在上面的腳本之前,您需要在HTML頭元素中包含jQuery副本。所以,你的頭元素看起來是這樣的:
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('a').attr('target', '_blank');
});
</script>
</head>
jQuery代碼本身是否必須在頭部,或只是「」? – Proffesor
@ user1046024:如果這是您需要的JavaScript,請不要加載jQuery。 – RightSaidFred
@ user1046024:兩者都不在頭上,但jQuery的腳本元素(第一個)應該在另一個之前。雖然普遍的共識似乎是使用丹尼斯的解決方案,但他沒有具體說明代碼應該放在哪裏,以便適用於所有鏈接。 – tjbp
getElementsByTagName
會抓住你所有的錨,然後你可以在它們之間迭代:
var list = document.getElementsByTagName("a"), len = list.length;
while(len--) {
list[len].target = "_blank";
}
的jsfiddle:http://jsfiddle.net/zwbCS/
+1不建議包括jquery或類似的任務,可以輕鬆完成任務。 –
'document.getElementsByTagName(「a」)''可以替換爲'document.links',這樣稍微更有效率('target'對非鏈接錨點沒有意義)。 –
@RobW這將適用於具體例子由OP提供,但我的回答是針對更改「某個標籤的所有HTML元素的特定屬性」的更一般的想法。 – Dennis
這裏是一個jQuery例子,如果要在新的窗口中打開外部鏈接:
var myHosts = [ // just in case you are using full abs paths
'www.mydomain.com'
];
jQuery(function()
{
jQuery('a[href^="http"]').each(function()
{
if (jQuery.inArray(this.hostname, myHosts) == -1 && this.href.indexOf(location.hostname) == -1)
jQuery(this).attr('target','_blank');
});
});
恕我直言,強迫訪問者按照你的方式去做並不是一個好主意。現代瀏覽器易於使用快捷鍵在新窗口/選項卡中打開鏈接。因此,如果訪問者發現您的網站非常有用,即使他通過點擊外部鏈接離開您的網站,他也會回覆您。
如果您想向您的訪問者提供關於您網站上外部鏈接的提示,我建議您在鏈接中放置一個圖標(例如CSS),並修改並使用上面的腳本來追加所需的CSS類的鏈接。像:
jQuery(function()
{
jQuery('a[href^="http"]').each(function()
{
if (jQuery.inArray(this.hostname, myHosts) == -1 && this.href.indexOf(location.hostname) == -1)
jQuery(this).addClass('external_link ');
});
});
CSS:
.external_link { padding-right: 20px; background: url(path/to/the/image) no-repeat right top; }
- 1. 如何知道HTML中標籤元素的所有屬性和屬性的值
- 2. 更改HTML表單CSS屬性標籤
- 3. 更改標籤的名字,但把所有的屬性
- 4. 更改懸停時元素的所有實例的屬性(CSS)
- 5. 更改所有<img> html文檔中的標籤src屬性?
- 6. 獲取網格中的所有元素,並更改其屬性
- 7. 屬性更改標籤顏色標籤
- 8. jQuery更改屬性元素
- 9. 更改jQuery元素屬性
- 10. 改變HTML標籤的屬性
- 11. 元素中的屬性關閉標籤?
- 12. 在更改語言時更改div的所有元素(html)?
- 13. 從所有HTML元素中刪除屬性標題
- 14. 使用jQuery獲取元素的HTML標籤屬性
- 15. jQuery - 選擇標籤 - 獲取所選元素的屬性
- 16. 找到所有<img>標籤和更改樣式屬性
- 17. 修改光標屬性的元素
- 18. 用jquery更改標籤的屬性
- 19. 更改Dojox.Mobile.Heading的標籤屬性
- 20. 更改標籤屬性的值?
- 21. CakePHP - 更改標籤的「for」屬性
- 22. 從後面的代碼更改HTML元素的樣式屬性
- 23. 更改對象列表中的一個元素屬性值也會更改所有元素的值
- 24. 更改屬性值會導致所有屬性的更改
- 25. HTML屬性中的標籤?
- 26. 標籤元素內的html
- 27. 不能更改元素的name屬性
- 28. 如何更改XML元素的屬性
- 29. 如何更改simpleXML元素的屬性?
- 30. 動態元素的更改屬性
那你試試這麼遠嗎? – Jpsy
我還沒有真正嘗試過任何東西。我不知道從哪裏開始。 – Proffesor
@JiminP:絕對的廢話。 – RightSaidFred