2016-07-02 11 views
1

セレクタ「cheerio」のようなこのjQueryは、HTMLページのコメントノードからコメントを取得しようとします。
$はcheerioオブジェクトです。 どうすればできますか?おかげシェリルセレクタを使用してコメント要素のテキストを取得

console.log($('*').contents().length); //reports back more than 1000 


$('*').contents().filter(function() { 
    if (this.nodeType == 8) { 

    //the following gives null for every node found 
    console.log($(this).html()); 

    //the following gives blank for every node found 
    console.log($(this).text()); 
    } 
}); 

答えて

2

コメントの内容は、いずれかのHTML(.innerHTML)または値(.value)、それは.nodeValueだではありません。 、

$('*').contents().filter(function() { 
    if (this.nodeType == 8) { 
    console.log(this.nodeValue); 
    } 
}); 

を(あなたの例がしたので、私はそこにfilterを使用しました:jQueryのはあなたのためにそれを取得するために機能を提供していないと私はチェリオのいずれかで行います疑うが、あなたは1を必要としません:ただthis.nodeValueを使用しますあなたがfilterの戻り値を使用していない場合は、eachは、より多くの意味があります)

ここでDOMの例だが、おそらくチェリオも同様に動作します:。

$("*").contents().each(function() { 
 
    if (this.nodeType === 8) { 
 
    console.log(this.nodeValue); 
 
    } 
 
});
<!-- Comment 1 --> 
 
<!-- Comment 2 --> 
 
<!-- Comment 3 --> 
 
<!-- Comment 4 --> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

関連する問題