3

.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): 包含部分 Reddits DOM 的 Firebug 屏幕截图

4

2 回答 2

5

您需要找到它,然后将其删除:

$(this).find('a').remove();
于 2012-11-19T15:58:33.273 回答
3

提供this作为上下文:

$("a", this).remove();

$函数的第二个参数通常是context您的选择器的参数,表示您希望找到与您的选择器匹配的区域。在这种特殊情况下,我们说我们想athis.

jQuery 会在内部将其转换为 find 调用:

$(this).find("a").remove();

因此,如果您不介意稍微冗长的解决方案(几个字符,没什么大不了的),您可以通过删除中间人语法并.find直接使用来获得非常微不足道的性能提升。

于 2012-11-19T15:59:05.303 回答