2012-11-19 78 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();