我有以下HTML:
<!--
<option value="HVAC">HVAC</option>
<option value="Cooling">|---Cooling</option>
<option value="Heating">|---Heating</option>
-->
....
我使用jQuery的get方法动态获取此文件,并将其存储在名为load_types
的字符串变量中。
如何删除HTML注释标记以及它们之外的所有内容?我只想要内部HTML:
<option value="HVAC">HVAC</option>
<option value="Cooling">|---Cooling</option>
<option value="Heating">|---Heating</option>
我尝试使用the solutions here但没有正常工作 - 我只是将null
作为匹配。
感谢您的帮助!
答案 0 :(得分:15)
请never use regex to parse HTML。您可以改用以下内容:
var div = $("<div>").html(load_types),
comment = div.contents().filter(function() {
return this.nodeType === 8;
}).get(0);
console.log(comment.nodeValue);
答案 1 :(得分:0)
您可以简单地获取注释所在的父标记的html,然后执行.replace("<!--","").replace("-->", "")
,该操作将删除注释标记,然后将该标记附加到其他父标记中,或者替换您当前的标记或创建一个新标记为其添加父项。
这将允许您使用jQuery选择器来检索所需的数据。
var comment = '<!-- <option value="HVAC">HVAC</option> <option value="Cooling">|---Cooling</option> <option value="Heating">|---Heating</option> --> ';
jQuery("#juni").append("<select>"+comment.replace("<!--", "").replace("-->", "") + "</select>")
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="juni"></div>