2017-03-09 66 views
1

我非常新的HTML,只是想搞清楚這些事情......HTTP的javaScript集屬性默認爲所有標籤

我想設置爲標籤的屬性,更具體的目標屬性,使所有在網頁的鏈接會在不同的標籤頁中打開...

我所遇到的jQuery的功能,並試圖用沒有成功,實現了它......

我的腳本標籤是這樣的:

<script src="static/jquery-3.1.1.js"> 
    $(document).ready(function() { 
     $('a').target = "_blank" 
     $("a").attr("target", "_blank"); 
    }); 

    $('a').target = "_blank" 
</script> 

的時候當然jQuery的文件是根據所提到的靜態目錄相同的目錄....

我也曾嘗試以下操作:

<script> 
    var elems = document.body.getElementsByTagName("a")[0]; 
    elems.setAttribute("target","_blank"); 
</script> 

時,只有一個頁面標籤...

請告訴我,我做錯了....

謝謝:)

+0

你嵌入外部jQuery腳本里面的代碼。你需要兩個腳本。一個取得jQuery,另一個取代你的代碼。 ' – 2017-03-09 16:15:27

+0

第二個代碼塊應該適用於單個元素,但如果您將腳本放在頁面的頂部,這將使得它在任何元素被加載之前運行。 – 2017-03-09 16:16:56

+1

而不需要jQuery:'for(let link of document.links){link.target =「_blank」}' – 2017-03-09 16:23:13

回答

0

你在你的腳本中,正確的代碼一些語法錯誤

<script src="static/jquery-3.1.1.js"></script> 
<script> 
    $(document).ready(function() { 
     $("a").attr("target", "_blank"); 
    }); 
</script> 
+0

thnx它現在的作品...只是爲了知道......你也許知道爲什麼當我檢查頁面使用Firefox /鉻和尋找目標的目標($('a')。在控制檯中的目標)它仍然說未定義...?我應該使用id的att來看看它嗎? – Dardar1991

+0

@ Dardar1991如果你使用'jquery',那麼你應該使用jQuery語法。並沒有'.target()'方法。這就是爲什麼我們使用它作爲attr。 –

0

正確的方法來設置attribut e的指定網頁中的所有元素是通過所有的元素循環,並設置像這樣的屬性:

var elems = document.body.getElementsByTagName("a"); 
 
for(var i = 0; i < elems.length; i++) 
 
{ 
 
    elems[i].setAttribute("target","_blank"); 
 
}

如果使用jQuery屬性設置的功能是$(選擇).attr (屬性名稱,值)

實施例:

$('a').attr("target","_blank"); 
0

起初,Y我們的代碼應該是這樣的:

$(document).ready(function() { 
    $("a").attr("target", "_blank"); 
}); 

它確實有效。你可以在這個頁面上試試它。我不知道你在測試什麼頁面,但我可以猜測你的代碼無法工作的原因是一些鏈接是在執行代碼後生成的。您可以更改您的代碼以避免此問題。

​​

您還可以添加一些代碼來提高效率。

0

你實際上不需要修改html,你可以可以只是像這樣每個鏈接添加一個點擊處理程序。

$(document).on('click', 'a', function(e) { 
    e.preventDefault(); 
    window.open(this.href); 
}); 
+0

Thanx你的答案也工作太多了,這只是我想知道如何設置所有的頁面標籤作爲一個屬性默認(任何屬性) – Dardar1991

+0

只是一個問題 - 函數接收的e參數包含任何東西.. 。?這就像發送這個/自我?因爲我沒有發送任何值,它仍然工作.... – Dardar1991