Селектор текста Div без тегов p - PullRequest
4 голосов
/ 27 ноября 2011

Есть ли селектор для текста в этом элементе div, не заключая его в тег <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?

1 Ответ

6 голосов
/ 27 ноября 2011

Вы можете выбрать все «голые тексты» (которые являются текстовыми узлами ) с помощью .contents, после чего вам следует выполнить фильтрацию с помощью .nodeType === 3 (отфильтровывать текстовые узлы, которые имеют nodeType из 3).

Например: http://jsfiddle.net/ZAYD2/.

$("div").contents().filter(function() {
    return this.nodeType === 3;
}).wrap("<p>");

Затем вы можете использовать CSS для стилизации всех элементов <p>, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...