我需要将此标记的HTML页面上的所有内容检索到数组。
为此,我使用此代码
var myregexp = /(<li class="mortadela">)(+?)(<\/li>/;
var match = myregexp.exec(html_text);
但这对我不起作用。
答案 0 :(得分:1)
如果您可以使用jQuery(或Zepto.js),那么您的生活将更容易8000以上:
var mortadelaValues = [];
$('.mortadela').each(function(){
var content = $(this).html();
mortadelaValues.push(content);
});
console.log(mortadelaValues);
请注意,我使用$(this).html()
作为内容。这允许在每个.mortadela
内获得任何标记。如果您只需要文字,可以将其替换为$(this).text()
。
JS Bin上的工作示例。
如果你不能使用这些库,你需要做更多的工作:
var mortadelaValues = [];
var mortadelas = document.getElementsByClassName('mortadela');
var mCount = mortadelas.length;
for( i=0; i < mCount; i++){
var content = mortadelas[i].innerHTML;
mortadelaValues.push(content);
}
console.log(mortadelaValues);
概念是一样的,但我们使用的是原生document.getElementsByClassName
和for
,而不是jQuery的选择器和.each()
函数。同样,如果您只需要文本而不是标记,则只需将innerHTML
替换为textContent
。
JS Bin上的工作示例。
警告您对document.getElementsByClassName
is limited to newer browsers (no support for IE6-8)的支持。