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