1

彼は、私のhtmlがDOM自体ではなくjava-script変数内にある場合に、.eachを使用する方法を尋ねています。

私がこのようなhtmlを持っている場合:

<html>
    <h1>deze</h1>
    <h1>this</h1>
    <h1>dies</h1>
</html>

できます:

$('h1').each(function(){
    var test = $(this).html();
    alert(test);                
});

それはちょうどdeze、これ、死ぬことを告げる警告を3回与えるでしょう。今、私は同じことをしたいのですが、変数内のhtmlを使用します。これが私の擬似コードであるかわかりません:

var html = '
           <h1>deze</h1>
           <h1>this</h1>
           <h1>dies</h1>
           ';

$(html).each('h1', function(){
    var test = $(this).html();
    alert(test);                
});

これを行う方法がわからない私にはわかりません。教えてください!

4

4 に答える 4

2

これを試して、最初にいくつかのDOMノードにスティングを解析してください:http: //api.jquery.com/jQuery.parseHTML/

var html = '<div>\
           <h1>deze</h1>\
           <h1>this</h1>\
           <h1>dies</h1>\
           </div>';
var test = $.parseHTML(html);

$('h1',test).each(function(){
    var test = $(this).html();
    alert(test);                
});

ここでの例:http: //jsfiddle.net/cnWqQ/3/

また、あなたの質問では、html変数が複数行に入力された方法で変数に解析されないことに気づきました。

このメソッドを使用するときに注意することの1つは、検索している要素がトップレベルにある場合は機能しないことです。これを回避するには、文字列をdivでラップします。詳細については、こちらを参照してください:http: //fredwu.me/post/554746690/jquery-tip-traverse-parse-html-string

于 2013-02-28T14:10:17.750 に答える
1
var html = '\
           <h1>deze</h1>\
           <h1>this</h1>\
           <h1>dies</h1>\
           ';

$("<div/>").html(html).find("h1").each(function(){
    var test = $(this).html();
    alert(test);                
});


$(html).filter("h1").each(function(){
    var test = $(this).html();
    alert(test);                
});
于 2013-02-28T14:12:00.660 に答える
1

LIVE DEMO

var html = '<h1>deze</h1>'+
           '<h1>this</h1>'+
           '<h1>dies</h1>';

$(html).filter(function(){
    var test = $(this).html();
    alert(test);                          // deze // this // dies
});
于 2013-02-28T14:15:41.437 に答える
-2

次のようなものを試してください:

$(html).filter('h1').each(function(){
    var test = $(this).html();
    alert(test);                
});

フィドル: http: //jsfiddle.net/m7f3F/

于 2013-02-28T14:09:24.343 に答える