如何让jquery解开文本如果链接不完整

问题描述:

我有一个项目列表,基本上所有应该有一个链接和一个图像 - 但有些不。由于我无法通过php来检查,所以我必须通过jquery来完成。如何让jquery解开文本如果链接不完整

这是我引用的实际html:两个条目 - 第一个缺少链接和缺少图像 - 第二个条目有一个工作链接(“/ node/NUMBER”)和一个图像(“/ images/NUMBER -thumb.JPG“)

<div class="related-entry"> 
    <a href="/node/"> 
     <div class="related-image"> 
     <img src="/images/-thumb.JPG"/> 
     </div> 
     <div class="related-term">term A</div> 
    </a> 
    </div> 
    <div class="related-entry"> 
    <a href="/node/64207"> 
     <div class="related-image"> 
     <img src="/images/64207-thumb.JPG"/> 
     </div> 
     <div class="related-term">term B</div> 
    </a> 
    </div> 

这是我用了原有的功能 - 它并删除链接 - 也对第二项。

// remove 'empty' links 
$("a").each(function() { 
    var href = $(this).attr("href"); 
    if(href == '/node/') { 
     $('a').contents().unwrap(); 
    } 
}); 

卸下空图像标签工作完全正常 - 第一个进入图像标签是隐藏的,第二个条目显示图像:

// remove empty images (works) 
$("img").each(function() { 
    var src = $(this).attr("src"); 
    if(src == '/images/-thumb.JPG') { 
    $(this).remove(); 
} 
}); 

我也尝试过不同的aproaches - 但无论哪种所有链接都被删除,或没有。这里有一个版本,我试图通过一个空的id属性“沟通”断开的链接:

// remove empty links (does not work) 
$("a").each(function() { 
if($(this).attr("id") == "") { 
    $('a').contents().unwrap(); 
    } 
}); 

我在想什么?伟大的任何建议/指针... thnx!

+1

你是什么意思的空链接?您的代码正在检查属性ID等于字符串空的链接。您最好提供相关的HTML标记问题本身 – 2015-02-24 19:05:08

+0

您可以添加链接的HTML结构,这将有助于找到解决方案 – 2015-02-24 19:23:16

+0

感谢您的答复/评论!我编辑了我的问题,并添加了一些示例代码和我使用的其他功能 - 希望这可以让我的问题更清晰。 – tillinberlin 2015-02-24 20:39:39

发现:中

$('a').contents().unwrap(); 

它需要

$(this).contents().unwrap(); 

instad所以在上下文中的函数现在看起来是这样的:

// remove empty links 
$("a").each(function() { 
    var href = $(this).attr("href"); 
    if(href == '/node/') { // or anything else you want to remove... 
     $(this).contents().unwrap(); 
    } 
}); 

...完成。