如何让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!
答
发现:中
$('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();
}
});
...完成。
你是什么意思的空链接?您的代码正在检查属性ID等于字符串空的链接。您最好提供相关的HTML标记问题本身 – 2015-02-24 19:05:08
您可以添加链接的HTML结构,这将有助于找到解决方案 – 2015-02-24 19:23:16
感谢您的答复/评论!我编辑了我的问题,并添加了一些示例代码和我使用的其他功能 - 希望这可以让我的问题更清晰。 – tillinberlin 2015-02-24 20:39:39