使用两个HTML标记之间的exec js检索内容(<li class =“mortadela”> </li>)

时间:2014-01-17 21:12:07

标签: javascript html tags exec

我需要将此标记的HTML页面上的所有内容检索到数组。

为此,我使用此代码

var myregexp = /(<li class="mortadela">)(+?)(<\/li>/;
var match = myregexp.exec(html_text);

但这对我不起作用。

1 个答案:

答案 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.getElementsByClassNamefor,而不是jQuery的选择器和.each()函数。同样,如果您只需要文本而不是标记,则只需将innerHTML替换为textContent

JS Bin上的工作示例。

警告您对document.getElementsByClassName is limited to newer browsers (no support for IE6-8)的支持。