从HTML输出中获取特定值

时间:2015-11-04 22:09:07

标签: javascript jquery

我从数据源获得以下结果。

"<span class=\"highlight\">DSDT10</span><div>011XBY</div>"

span和div中的值可能会有所不同。

我只希望跨越“DSDT10”中的值在一个单独的变量中。

我尝试了什么:

var data = '<span class=\"highlight\">DSDT10</span><div>011XBY</div>';

var formattedData = data.replace(/<\/?span[^>]*>/g, "");

$('#output').append(formattedData);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

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

期望:

仅从数据变量中检索“DSDT10”。

任何建议表示赞赏。感谢。

3 个答案:

答案 0 :(得分:3)

您只想获得跨度内的文字?你可以修改你的正则表达式并使用匹配..

var data = '<span class=\"highlight\">DSDT10</span><div>011XBY</div>';
var formattedData = data.match(/<span[^>]*>([^<]*)<\/span>/, "")[1];

但是既然你正在使用jquery,你也可以这样做:

var formattedData = $("<div>", {html: data}).find("span").text()

答案 1 :(得分:1)

只有两行代码:

_str = "<span class=\"highlight\">DSDT10</span><div>011XBY</div>";
_span = $(_str).filter('span').text();

答案 2 :(得分:0)

这只够一行:

$('#output').html($('span').html());