我从数据源获得以下结果。
"<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”。
任何建议表示赞赏。感谢。
答案 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());