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がロードされています)。 RedditsDOMの一部を含むFirebugのスクリーンショット

4

2 に答える 2

5

それを見つけて削除する必要があります。

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

thisコンテキストとして提供:

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

関数の 2 番目のパラメーター$は、多くの場合、セレクターのcontextです。これは、セレクターとの一致を見つけたい領域を意味します。aこの特定のケースでは、内の要素を見つけたいと言っていますthis

jQuery はこれを内部的に検索呼び出しに変換します。

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

したがって、もう少し冗長な解決策 (数文字、大したことではありません) を気にしない場合は、仲介者の構文を省略して.find直接使用することで、ごくわずかなパフォーマンスの向上を得ることができます。

于 2012-11-19T15:59:05.303 に答える