使用jQuery面临“html”清理挑战
Facing `html` cleaning challenge using jQuery
我从后端获取dusty
html。(后端将.doc转换为 HTML)我想清除标签。我使用了每个迭代器,但我没有得到期望的输出。
1)我无法在单词之间放置space
(span之间有空格)
2)我不知道将内容包装在单个strong
元素中,以防万一
这是我的 HTML :
<p style="margin-right:0pt;margin-left:47.55pt;margin-bottom:0pt;line-height:normal;font-size:11pt;">
<strong>
<span style="font-family:Arial;">OUT</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:0.05pt;">D</span>
</strong>
<strong>
<span style="font-family:Arial;">OOR</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.5pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">COOLING</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.45pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">OF</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.15pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">AL</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.15pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">GH</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:0.05pt;">A</span>
</strong>
<strong>
<span style="font-family:Arial;">RAFFA</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.6pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:0.05pt;">SP</span>
</strong>
<strong>
<span style="font-family:Arial;">ORTS</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.4pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">CL</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:0.05pt;">U</span>
</strong>
<strong>
<span style="font-family:Arial;">B</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.3pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">FOR</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.2pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">AS</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:0.05pt;">P</span>
</strong>
<strong>
<span style="font-family:Arial;">IRE</span>
</strong>
<strong>
<span style="font-family:Arial;letter-spacing:-0.4pt;"> </span>
</strong>
<strong>
<span style="font-family:Arial;">ZONE</span>
</strong>
</p>
我的尝试 :
$('p').children('strong').find('span').each(function () {
$(this).contents().unwrap();
});
注意:我每页都没有paragraphs
。
现场演示
更新:
几乎我期待这个输出:
<p style="font-family:Arial;letter-spacing:0.05pt;"><strong>OUTDOOR COOLING OF AL GHARAFFA SPORTS CLUB FOR ASPIRE ZONE</strong></p>
您可以使用所有跨度的 .text() 非常轻松地获得它:
$("span").text()
会给你
OUTDOOR COOLING OF AL GHARAFFA SPORTS CLUB FOR ASPIRE ZONE
因此,您可以将其包装为<p>
,并<strong>
为单行:
$("<p style='font-family:Arial;letter-spacing:0.05pt;'><strong>" + $("span").text() + "</p></strong>");
你可以这样使用:
$("#output").prepend(...the above...)
在这里演示 - http://jsfiddle.net/sifriday/vh8ehn0u/1/
要使其适用于多个段落,请执行以下操作:
$("p").each(function(idx, para) {
var output = $("<p style='font-family:Arial;letter-spacing:0.05pt;'><strong>" + $("span", $(para)).text() + "</p></strong>");
// Do something with output here
});
你不需要内联样式,也不需要<strong>
标签 - 为此使用 CSS -
突然之间,这变得更容易和更干净。
$("strong span").each(function(){
$("body,#orNewParentElementOfYourChoice").append("<p>"+$(this).text()+"</p>");
});
我认为您应该修改页面的HTML结构,但是如果您不想这样做,那么这是适合您的工作JSFiddle。
我已经删除了这里除一个之外的所有<strong>
标签,并将所需的输出放在剩余<strong>
元素内的<span>
中。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 如何使用javascript或html下载PDF格式的填写表单
- 视频HTML没有'无法在Internet Explorer 11上工作
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 使用angular重定向到html页面
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 在html Select中添加搜索
- 使用jQuery面临“html”清理挑战
- HTML 和 JSP 脚本中的串联挑战与支柱