删除除格式除外的所有未格式化的文本?

时间:2011-07-05 09:22:55

标签: jquery css

我有一个包含无格式文本和两个div的div。如果你问为什么文本没有被格式化,那是因为它是由插件通过API返回的,所以我无法真正控制它。标记看起来像这样:

<div id="parentdiv">
   <div class="childdiv"></div>
   <div class="childdiv"></div>
   unformattedtext
</div>

如何摆脱“unformattedtext”?如果可能的话我想用CSS来做,但如果没有,那就用jQuery做了。

3 个答案:

答案 0 :(得分:4)

这将删除作为#parentdiv的直接子项的文本节点:

$("#parentdiv").contents().filter(function(){ return this.nodeType == 3; }).remove();

答案 1 :(得分:1)

$('#parentdiv').contents(':not(*)').remove();

答案 2 :(得分:0)

您可以将unformattedtext放入带有display:inline的div / a / p / span /字体中,以免破坏格式。

<div id="parentdiv">
    <div class="childdiv"></div>
    <div class="childdiv"></div>
    <div style="display:inline">unformattedtext</div>
</div>

<script type="text/javascript">
$("#parentdiv :not(.childdiv)").hide(); //Hide whatever is not .childdiv
</script>

JSFiddle:http://jsfiddle.net/kongr45gpen/EBL4G/