我知道发布了许多类似的问题,并尝试过几个解决方案,但我真的很感激我的具体问题的一些指导。
我想从我的HTML markup
中删除string
中array
的每个项目中的以下<SPAN CLASS="KEYWORDSEARCHTERM"> </SPAN>
:
array
我有json objects
HTML markup
(printArray),其printArray.header可能包含<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016
RECORD WINE PRICES AT <SPAN CLASS="KEYWORDSEARCHTERM">NEDBANK</SPAN> AUCTION
。
标题文字并不总是相同。
以下是printArray.header的两个示例:
HTML markup
我想剥离var newHeaderString;
var printArrayWithExtract;
var summaryText;
this.setPrintItems = function(printArray) {
angular.forEach(printArray, function(printItem){
if (printItem.ArticleText === null) {
summaryText = '';
}
else {
summaryText = '... ' + printItem.ArticleText.substring(50, 210) + '...';
}
// Code to replace the HTML markup in printItem.header
// and return newHeaderString
printArrayWithExtract.push(
{
ArticleText: printItem.ArticleText,
Summary: summaryText,
Circulation: printItem.Circulation,
Headline: newHeaderString,
}
);
});
return printArrayWithExtract;
};
,留下以下结果:
2016年最受尊敬的公司
在NEDBANK拍卖中记录葡萄酒价格
这是我的功能:
{{1}}
答案 0 :(得分:1)
可以使用正则表达式完成,见下文:
var s1 = '<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016';
var s2 = 'RECORD WINE PRICES AT <SPAN CLASS="KEYWORDSEARCHTERM">NEDBANK</SPAN> AUCTION';
function removeSpanInText(s) {
return s.replace(/<\/?SPAN[^>]*>/gi, "");
}
$("#x1").text(removeSpanInText(s1));
$("#x2").text(removeSpanInText(s2));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
1 ->
<span id="x1"></span>
<br/>2 ->
<span id="x2"></span>
有关详细信息,请参阅例如Javascript Regex Replace HTML Tags。
并且不需要jQuery,只是用于显示输出。
答案 1 :(得分:1)
试试这个功能。它将删除所有标记标记......
function strip(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
return tmp.textContent || tmp.innerText || "";
}
调用此函数将html作为字符串发送。例如,
var str = '<SPAN CLASS="KEYWORDSEARCHTERM">MOST EMPOWERED</SPAN> COMPANIES 2016';
var expectedText = strip(str);
在这里,您可以找到预期的文字。
答案 2 :(得分:0)
我使用了这个小替换函数:
if (printItem.Headline === null) {
headlineText = '';
}
else {
var str = printItem.Headline;
var rem1 = str.replace('<SPAN CLASS="KEYWORDSEARCHTERM">', '');
var rem2 = rem1.replace('</SPAN>', '');
var newHeaderString = rem2;
}