2012-11-19 41 views
3

在由.each指定的函数内我想要删除a标记/。 这是一个非工作例如:从每个.each调用的函数中删除标记

$('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和使用萤火虫(jQuery是加载): Firebug screenshot containing part of Reddits DOM

+0

你试过了$(this).find('a')。remove()'? –

+0

你可以试试这个吗? $(本).find( 'A')删除(); – ryadavilli

+0

@杰克:不,我没有,我是绿色的jQuery,并没有真正理解它的概念呢。 – Deleted

回答

3

提供this作为上下文:

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

$函数的第二个参数通常是您的选择器的context的倍数,这意味着您希望查找与您的选择器匹配的区域。在这种情况下,我们说我们想在this内找到a元素。

jQuery将在内部将其转换为一个查找电话:

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

所以,如果你不介意稍微详细的解决方案(几个字符,没什么大不了的),你可以拿起一个非常微不足道通过削减中间人语法并直接使用.find来提高性能。

5

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

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