0

Node.js を使用して Web ページをスクレイピングしようとしています。リンク内の div ノードを削除して、文字列「John Doe」を取得したいだけです。ここで何が間違っていますか?

<div class="myclass">
<a href="page.html">
    <div><img src="image.jpg" /></div>
    John doe
</a>
</div>


$('div.myclass a').each(function(i, e) {
    $(e).each(function(i, e) {
        console.log($(e).remove("div").html());
    }
}

コードのこの JavaScript チャンクは、まったく同じ html 部分を返します (div は削除されません)。

<div class="myclass">
<a href="page.html">
    <div><img src="image.jpg" /></div>
    John doe
</a>
</div>

ご協力いただきありがとうございます !

4

3 に答える 3

0

あなたもchildren機能できますか

$('div.myclass a').each(function(i, e) {
    $(e).each(function(i, e) {
        console.log($(e).children('div:first').remove(););
    }
}
于 2013-10-29T13:43:01.450 に答える
0

これを試して

$('div.myclass a').each(function (i, e) {
    $(e).each(function (i, ex) {
        $(ex).find("div").remove();
        $(ex).html();
    });
});

デモ

さらにシンプルに

$('div.myclass a').each(function (i, e) {
    $(e).find("div").remove();
    $(e).html();
});

デモ2

于 2013-10-29T13:34:57.240 に答える
0

あなたのコードでは、問題は行にあり、一致した set から要素$(e).remove("div")を削除しようとしていますが、現在の要素であるため何も削除されません。代わりに、現在の要素内の子を見つけて削除する必要があります。diveeanchor$(e).remove("div")diva

html が無効であっても、削除することができます。div

$('div.myclass a').each(function(i, e) {
    $(this).children('div').remove();
    var text = $.trim($(this).text());
    console.log(text)
})

デモ:フィドル

于 2013-10-29T13:35:00.523 に答える