从类似html的字符串中提取文本值

时间:2019-01-11 20:13:46

标签: javascript jquery

我有这个string(不是html而是string):

<div class="rTag">ATINA</div><div class="rTag">BELMOPAN</div><div class="rTag">DAMASK</div><div class="rTag">FILIPINI</div><div class="rTag">BANGKOK</div>

需要提取文本值rTag,因此结果应为新字符串:

ATINA,BELMOPAN,DAMASK,FILIPINI,BANGKOK

有帮助吗?

2 个答案:

答案 0 :(得分:2)

这会将#output的内容设置为新的str,但是加入后,您可以执行任何操作。

var str = [];
var content = '<div class="rTag">ATINA</div><div class="rTag">BELMOPAN</div><div class="rTag">DAMASK</div><div class="rTag">FILIPINI</div><div class="rTag">BANGKOK</div>';
var $html = $($.parseHTML("<div>" + content + "</div>"));

$html.find(".rTag").each(function(){
str.push($(this).html());
});


$("#output").html(str.join(","));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

<div id="output"></div>

答案 1 :(得分:0)

将HTML字符串解析为DOM元素以便可以由javascript / jquery处理是一个相当标准的过程:

$(content)

就足够了,而无需将其添加到DOM(以及所有在幕后的东西)。

在这种情况下:

var content = '<div class="rTag">ATINA</div><div class="rTag">BELMOPAN</div><div class="rTag">DAMASK</div><div class="rTag">FILIPINI</div><div class="rTag">BANGKOK</div>';

var arr = $(content).filter(".rTag").map(function() {
  return $(this).text();
}).get();

console.log(arr.join(","));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>