Javascript 如何从innerHTML字符串中删除隐藏的标记

Javascript 如何从innerHTML字符串中删除隐藏的标记,javascript,html,Javascript,Html,我有包含数据的HTML表。根据报告生成,有些列是隐藏的。 我正在从这些表生成一个Excel文件。为了生成Excel文件,我必须向Excel函数提供innerHTML数据。问题是,innerHTML数据也包含隐藏的标记 这将导致Excel文件显示隐藏的列数据。有什么方法可以删除隐藏标记的数据吗?使用JQuery,您可以执行以下操作: var htmlString = '<<your innerHTML string>>'; var obj = jQuery(html

我有包含数据的HTML表。根据报告生成,有些列是隐藏的。 我正在从这些表生成一个Excel文件。为了生成Excel文件,我必须向Excel函数提供
innerHTML
数据。问题是,
innerHTML
数据也包含隐藏的标记


这将导致Excel文件显示隐藏的列数据。有什么方法可以删除隐藏标记的数据吗?

使用JQuery,您可以执行以下操作:

var htmlString = '<<your innerHTML string>>';    
var obj = jQuery(htmlString);
var jQ = jQuery("<p>").append(obj);
jQ.children(":hidden").html("");
var newHtml = jQ.html();
var htmlString='';
var obj=jQuery(htmlString);
var jQ=jQuery(“”).append(obj);
jQ.children(“:hidden”).html(“”);
var newHtml=jQ.html();

现在在您的代码中使用
newHtml

您能删除所有子元素,然后获得innerHTML吗?发布一个示例代码会有所帮助。基本上,在纯JS中,您可以迭代DOM元素并排除
元素type='hidden'
元素。解决方案非常简单,您自己尝试过解决它吗?如果是,请发布您在问题中尝试过的内容。您应该首先操作DOM元素,然后获取innerHTML。试图将HTML作为文本处理是不愉快的。您是否有一个列是如何隐藏的示例?基础解决方案是否适合您?这可能会破坏报表布局。最好清除隐藏元素的内部html
jQ.children(“:hidden”).html(“”
@同意!!更新了我的回答这可能会清除隐藏单元格的内容,但该单元格仍将在表中,不是吗?这也有点偶然,因为具有
可见性:hidden
不透明度:0
的单元格不会被清除,因为它们不是由
:hidden
选择的。是的。根据op的要求,他需要“删除隐藏标记的数据”注:“问题是,innerHTML数据也包含隐藏标记”,这向我表明需要删除整个元素,否则(很可能)电子表格中将有一列空单元格。