我有html代码的字符串值。喜欢以下
var stringData = "My name is khan <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li> <li>aslaS</li></ul> to <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul><ol><li>HI BOY </li><li>WWF</li></ol>."
我想从字符串中单独使用HTML代码。
var htmlCode = <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul> to <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul><ol><li>HI BOY </li><li>WWF</li></ol>.
注意:在字符串中,我的名字是khan是动态内容所以我们也会有其他文字而不是&#34;我的名字是汗&#34;
Ex: " Hi how are <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul> to <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul><ol><li>HI BOY </li><li>WWF</li></ol>."
所以我们不应该使用khan或space分割(split(&#39;&#39;))。请给出上述问题的解决方案
答案 0 :(得分:1)
你可以从“&lt;”的第一个索引子串像这样:
var htmlCode = stringData.slice(stringData.indexOf("<"), stringData.length);
或只是
var htmlCode = stringData.substring(stringData.indexOf("<"));
答案 1 :(得分:0)
var stringData = "var stringData = "My name is khan <ul><li>welo</li><li>sdlld</li><li>ssal</li>....";
var n = stringData.indexOf("<ul>");
if (n !== -1) {
var htmlString = stringData.substring(n, stringData.length)
}
答案 2 :(得分:0)
从第一个&#39;&lt;&#39;开始获取子字符串怎么样?并以最后的&#39;&gt;&#39;
结尾答案 3 :(得分:0)
如果您确定您的标记是开放式且有效并且在一行中,则可以使用
stringData.match(/(<.*>).$/)[1]
答案 4 :(得分:0)
您可以使用jQuery的.children
方法,这将省去任何文本节点:
var stringData = "My name is khan <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li> <li>aslaS</li></ul> to <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul><ol><li>HI BOY </li><li>WWF</li></ol>.";
var htmlOnly = $('<div/>').html( $('<div/>').html( stringData ).children() ).html();
//DEMO ONLY
$('.before').text( stringData );
$('.after').text( htmlOnly );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
BEFORE:<br><div class="before"></div>
AFTER:<br><div class="after"></div>
答案 5 :(得分:0)
使用包HTMLAgilityPack
用于基于标签的提取值
答案 6 :(得分:0)
尝试
var htmlCode = $.grep($.parseHTML(stringData), function(html) {
return html.nodeType !== 3
});
var stringData = "My name is khan <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li> <li>aslaS</li></ul> to <ul><li>welo</li><li>sdlld</li><li>ssal</li><li>asalas</li><li>aslaS</li></ul><ol><li>HI BOY </li><li>WWF</li></ol>.";
var htmlCode = $.grep($.parseHTML(stringData), function(html) {
return html.nodeType !== 3
});
$("body").append(htmlCode)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>