在由.each
定价的函数中,我想删除a
标记/。
这是一个不起作用的例子:
$('div.link').has('div.entry:has(p.title:has(a[href^="http://i.imgur.com/"]))').each(function (i) {
$(this).css('border', '5px solid');
$(this).remove('a'); // Does NOT work! Nothing happens...
console.log($(this));
})
点击下面的图片查看完整尺寸。标记的线是纯粹的巧合并且没有任何表示。要测试内容,请访问http://reddit.com并使用Firebug(加载jQuery):
答案 0 :(得分:5)
您需要找到它,然后将其删除:
$(this).find('a').remove();
答案 1 :(得分:3)
提供this
作为上下文:
$("a", this).remove();
$
函数的第二个参数通常是选择器的context
倍,这意味着您要查找的区域与您的选择器匹配。在这种特殊情况下,我们说我们想在a
中找到this
元素。
jQuery将在内部将其转换为查找调用:
$(this).find("a").remove();
因此,如果你不介意一个稍微冗长的解决方案(几个字符,没什么大不了),你可以通过删除中间人语法并直接使用.find
来获得非常微不足道的性能提升