没有p标签的Div文本选择器

4

这个

中的文本有没有选择器可以选择它,而不需要将其包装在<p>标签中?或者,是否可能使用JQuery / JavaScript查找所有文本并将其包装在<p>标签中?

<div class="content">
Some content in here.
<img src="image" alt="image" />
</div>

我无法添加额外的HTML标记,但希望将文本与图片样式区分开来。

我希望将文本用<p>标签包装起来,使之变为:

<div class="content">
<p>Some content in here.</p>
<img src="image" alt="image" />
</div>

我能否通过CSS仅选择文本而不带HTML标记进行样式设计?

你最好更改HTML标记。 - Tomalak
你的意思是需要 div 内部的纯文本而不包含标记吗? - Marwan
如果 div 包含多个文本节点,您是否期望每个文本节点都被包装在段落中? - mrtsherman
我需要查找文本节点,因为我不确定它们的含义。但是如果您指的是多个文本块,那么是的。是的,无法向文本添加HTML标记,因此我无法通过传统CSS选择它。 - uriah
1个回答

6
你可以使用.contents选择所有的“裸文本”(即文本节点),然后应该使用.nodeType === 3进行过滤(过滤掉具有nodeType为3的文本节点)。
例如:http://jsfiddle.net/ZAYD2/
$("div").contents().filter(function() {
    return this.nodeType === 3;
}).wrap("<p>");

你可以使用 CSS 来样式化所有的 <p> 元素,例如。

太棒了!我会查找更多的文本节点。谢谢pimvdb。 - uriah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接