2017-03-09 33 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