我有一个包含此表单的字符串
<p>Central: <span class="fieldText">Central_Local</span>
<br>Area Resolutoria: <span class="fieldText">Area_Resolutoria</span>
<br>VPI: <span class="fieldText">VIP</span>
我正在尝试获取span
元素,并在
var message = currentMarker.get("mensaje");
var pat = new RegExp("^(.*?<span .*?>(.*?)</span>.*?)+$");
message.match(pat);
我需要获得这些值:
Central_Local
Area_Resolutoria
VIP
IP_ERX
如何做到这一点,或者我的正则表达式如何得到改善?
答案 0 :(得分:5)
的jQuery
var message = currentMarker.get("mensaje");
var contents = [];
$('<div>', {html: message }).find('span.fieldText').each(function(){
contents.push( $(this).text() );
});
演示http://jsfiddle.net/DfDPR/2/
纯javascript
var message = currentMarker.get("mensaje");
var contents = [];
var div = document.createElement('div');
div.innerHTML = message;
var spans = div.getElementsByTagName('span');
for (var span = 0; span < spans.length; span++)
{
contents.push(spans[span].innerHTML);
}
演示http://jsfiddle.net/DfDPR/3/
正如评论中所提到的,正则表达式不适合解析HTML ...
答案 1 :(得分:3)
var values = $('span.fieldText', message).map(function(){
return $(this).text();
}).get();
values
将是一个包含您需要的所有值的数组。你可以迭代它或做你喜欢的任何事情。