我从无法修改的网络服务返回内容,该内容返回如下数据:
<div id="entrance" style="">
Habilitação / Diploma de Ensino Medio Diploma de Ensino Pre Universitario
<br>
<br>
Diploma Record of study
</div>
如何使用 jQuery 将两个句子包装在单独的
标记中?我知道我可以使用 .wrap 但这会包装整个内容。我需要正则表达式吗?
谢谢, 托马斯
更新:
我的要求更改为需要一个列表而不是段落,因此使用下面的答案,我稍微修改了它以将其包装在
- 中
jQuery('#entrance').show();
jQuery('#entrance').html(data).contents().each(function () {
if ( this.nodeType === 3 ) jQuery( this ).wrap( '<li />' );
else jQuery( this ).remove();
});
jQuery('#entrance').wrapInner('<ul />');
最佳答案
怎么样:
$( '#entrance' ).contents().each(function () {
if ( this.nodeType === 3 && $.trim( this.data ) !== '' ) {
$( this ).wrap( '<p />' );
} else {
$( this ).remove();
}
});
现场演示: http://jsfiddle.net/ZMD6m/5/
我的代码将所有非空文本节点转换为包含该文本的段落。所有其他类型的节点都将被删除。
关于javascript - 如何使用自己的 <p> 标签包装由 <br><Br> 分隔的文本节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852883/