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

时间:2015-02-24 19:01:13

标签: jquery

我有一个项目列表,基本上所有项目都应该有链接和图像 - 但有些则没有。由于我无法通过php检查,我必须通过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();
}
});

我也尝试了不同的方法 - 但要么删除所有链接,要么删除所有链接。这是一个版本,我尝试通过空id属性“沟通”断开的链接:

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

我缺少什么?任何建议/指针都很棒...... Thnx!

1 个答案:

答案 0 :(得分:0)

发现它:而不是

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

它需要

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

在上下文中,函数现在看起来像这样:

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

...完成。