Jquery 将目标属性添加到<;a>;具有“除”以外的HREF的&引用;

Jquery 将目标属性添加到<;a>;具有“除”以外的HREF的&引用;,jquery,html,Jquery,Html,在我的html中有大量htmla标记,如下所示: <a href="#!></a> <a href="something.html"> 但是这不管用,为什么呢?试试这个 $(document).ready(function() { $('a').each(function(index){ if($(this).attr('href') != '#!') $(this).attr("target","_blank");

在我的html中有大量html
a
标记,如下所示:

<a href="#!></a>
<a href="something.html">
但是这不管用,为什么呢?

试试这个

$(document).ready(function() {
  $('a').each(function(index){
      if($(this).attr('href') != '#!')
           $(this).attr("target","_blank");
   });
});

我相信你错过了引语

<a href="#!"></a> 

首先,您的标记是无效的<代码>应该是它的编写方式。。。在您的示例中,缺少href属性的结束双引号

另一方面,您正在检查$('a'),它将返回一个锚定标记数组。数组没有
href
属性,所以它就要消亡了

我想你要找的是

$("a").each(function(){
    if($(this).attr("href").length > 3) {
        $(this).attr("target","_blank");
    }
});

这里有一种使用jQuery.not函数的方法。


哎呀,见鬼,你把我揍了一顿!
if($(this).attr('href') != '#!')
$("a").each(function(){
    if($(this).attr("href").length > 3) {
        $(this).attr("target","_blank");
    }
});
$(document).ready(function(){
    $("a").not("[href='#!']").prop("target", "_blank");
});