如果不是target = blank,则删除img链接

时间:2015-06-22 11:50:26

标签: jquery href target

我的网站上有图片,有些图片有target =“_ blank”属性,有些没有。

这里有两个例子:

目标= _blank:

<a href="/mission.jpg" target="_blank"><img class="alignnone size-medium wp-image-1270" src="/mission-300x289.jpg" alt="mission" width="300" height="289" /></a>

没有目标= _blank:

<a href="/mission_1.jpg"><img class="alignnone size-medium wp-image-1271" src="/mission-300x289.jpg" alt="mission_1" width="300" height="289" /></a>

我正在使用此代码从我的图片中删除链接:

$("a:has(img)").each(function() { $(this).replaceWith($(this).children()); })

否我只想在图片没有target = _blank属性时添加条件来删除链接。

任何人都可以帮助我吗?

非常感谢你的帮助;

5 个答案:

答案 0 :(得分:2)

尝试

$("a:not([target='_blank']) img").unwrap();

OR

$("a[target !='_blank'] img").unwrap();

Fiddle

答案 1 :(得分:1)

使用此:

     $('a:not([target="_blank"]):has(img)').each(function() { 
         $(this).replaceWith($(this).children()); 
    })

working fiddle

答案 2 :(得分:0)

  $("a:has(img)").each(function() { 
    var x=$(this).attr('target');

    if(x!="_blank"){
      //do your stuff here
    $(this).remove();
    $(this).replaceWith($(this).children()); 
    }
})

<强> JSFIDDLE DEMO

答案 3 :(得分:0)

您可以使用

$("a[target!='_blank']:has(img)").each(function() {
  $(this).replaceWith($(this).children());
})

请参阅jsfiddle

答案 4 :(得分:0)

这是另一种方式,特别是针对与此问题相关的多个浏览器进行检查。

jQuery hasAttr checking to see if there is an attribute on an element

$('a:has(img)').each(function() {
    if (!!$(this).attr('target')) {
        (this).unwrap();
    }
});