.每个通过HTML内部变量

.each trough html inside variable

本文关键字:内部 变量 HTML      更新时间:2023-09-26

他我只是问如何使用。each当我的html是在java-script变量,而不是在DOM本身。

如果我有这样的html:

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

I can do:

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

它会发出3次警告,告诉deze, this, die。现在我想做同样的事情,但随后与html内部变量。不知道这是我的伪代码:

var html = '
           <h1>deze</h1>
           <h1>this</h1>
           <h1>dies</h1>
           ';
$(html).each('h1', function(){
    var test = $(this).html();
    alert(test);                
});

不知道该怎么做,我不知道。请开导我!

尝试先将字符串解析为一些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变量不会解析成一个变量,它被输入到多行。

使用此方法时要注意的一件事是,如果您正在搜索的元素位于顶层,则该方法将不起作用。为了避免这种情况,只需将字符串包装在div中。有关这方面的更多信息,请参阅:http://fredwu.me/post/554746690/jquery-tip-traverse-parse-html-string

现场演示

var html = '<h1>deze</h1>'+
           '<h1>this</h1>'+
           '<h1>dies</h1>';
$(html).filter(function(){
    var test = $(this).html();
    alert(test);                          // deze // this // dies
});
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);                
});

试试这样写:

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

小提琴:http://jsfiddle.net/m7f3F/