我只是问当我的 html 位于 java-script 变量而不是 DOM 本身时如何使用 .each。
如果我有这样的 html:
<html>
<h1>deze</h1>
<h1>this</h1>
<h1>dies</h1>
</html>
我能做到:
$('h1').each(function(){
var test = $(this).html();
alert(test);
});
它只会发出 3 次警报,告诉 deze,这个,死了。 现在我想做同样的事情,但是然后在变量中使用 html。不知道这是我的伪代码:
var html = '
<h1>deze</h1>
<h1>this</h1>
<h1>dies</h1>
';
$(html).each('h1', function(){
var test = $(this).html();
alert(test);
});
不知道该怎么做,我不知道。请赐教!
最佳答案
首先尝试将您的 sting 解析为一些 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
关于javascript - .each 槽 html 里面的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137531/