我正在尝试从Word文档创建的HTML文件中删除空白区域(导出为HTML),但我仍然不成功。
例如:
Orders = new ObservableCollection<Order>(orderService.GetAllOrders()
.SelectMany(x => x.Dispatches)
.SelectMany(x => x.DispatchDetails)
.ToList()
);
我尝试了CSS选择器<p dir="ltr" class="pt-ListParagraph">
<span class="pt-000003"> </span></p>
<p dir="ltr" class="pt-Normal-000001">
<span class="pt-DefaultParagraphFont-000002">Work Instruction</span></p>
<p dir="ltr" class="pt-Normal">
<span class="pt-000000"> </span></p>
<p dir="ltr" class="pt-Normal">
<span class="pt-DefaultParagraphFont">DEFINITIONS AND ACRONYMS</span></p>
<p dir="ltr" class="pt-BodyText"><span class="pt-000004"> </span></p>
<p dir="ltr" class="pt-Normal-000005">
<span class="pt-DefaultParagraphFont-000006">DO Brief </span>
<span class="pt-DefaultParagraphFont-000007"> </span>
和p span:empty
,但这不起作用,因为它看到了p span:blank
之间的空白区域。我已经尝试过从这个帖子标题生成的选项不成功(jQuery不是一个选项) - 我不知所措。我想在HTML的头部添加一个<span class="pt-000000"> </span>
文件,以便在页面加载时运行,该文件将删除Word Doc转换为HTML时生成的所有空格(.js
)文件。有人能给我一些建议吗?
删除跨度是一种选择。但是,每次跨度类都会有所不同,具体取决于Word Doc的导出,要求我创建几个span.classes。我已经考虑过了,但认为这只是一个创可贴的助推器。
更新
<span class="pt-000000"> </span>
做了诀窍:
window.addEventListener
&#13;
答案 0 :(得分:1)
使用 querySelectorAll()
或 getElementsByTagName()
获取所有范围,然后使用 Array#forEach
对其进行迭代并使用 remove()
方法根据内容删除。
Array.from(document.querySelectorAll('span')).forEach(function(ele) {
if (!ele.textContent.trim()) ele.remove();
});
// or
[].slice.call(document.querySelectorAll('span')).forEach(function(ele) {
if (!ele.textContent.trim()) ele.remove();
});
<p dir="ltr" class="pt-ListParagraph">
<span class="pt-000003"> </span></p>
<p dir="ltr" class="pt-Normal-000001">
<span class="pt-DefaultParagraphFont-000002">Work Instruction</span></p>
<p dir="ltr" class="pt-Normal">
<span class="pt-000000"> </span></p>
<p dir="ltr" class="pt-Normal">
<span class="pt-DefaultParagraphFont">DEFINITIONS AND ACRONYMS</span></p>
<p dir="ltr" class="pt-BodyText"><span class="pt-000004"> </span></p>
<p dir="ltr" class="pt-Normal-000005">
<span class="pt-DefaultParagraphFont-000006">DO Brief </span>
<span class="pt-DefaultParagraphFont-000007"> </span>
remove()
方法仅适用于最新浏览器,因此请使用以下代码。
ele.parentNode.removeChild(ele);
答案 1 :(得分:1)
您可以使用getElementsByTagName检索HTML文件中所有span
元素的列表。然后遍历每个span元素并检查它是否只包含空格。如果是,请将该范围的innerHTML
设置为空字符串。
示例:
var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].innerHTML.trim() == '') {
spans[i].remove();
}
}
更新示例:
window.addEventListener('load', function() {
var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].innerHTML.trim() == '') {
spans[i].remove();
}
}
});
答案 2 :(得分:0)
class {display:none; }? 要么 class {content:'';也许?