CSS только получить текст [дубликаты]

0

Я пытаюсь найти текст внутри элемента с помощью селектора css, но не включать дочерние элементы этого элемента. Например:

<div id="information">
 This is the text I need
 <div>I don't want this text</div>
 <span>I also don't want this</span>
</div>

Есть идеи?

ПРИМЕЧАНИЕ. Я разбираю страницу, поэтому я не контролирую элементы

  • 0
    Это странно. CSS был сделан для придания стилей элементам, и вы не можете установить стиль текста. Может быть, вы разбираете страницу и имеете другие доступные селекторы, например xpath?
  • 1
    Это невозможно только с помощью CSS, извините. stackoverflow.com/questions/1520429/css-3-content-selector
Показать ещё 6 комментариев
Теги:

3 ответа

2

Таким образом, вы хотите получить текст внутри #information но вам не нужен div и span? Кажется довольно простым:

#information {
    /* property values */
}

#information > div {
    display: none; /* removes content of child div */
}

#information > span {
    display: none; /* removes content of child span */
}

Наверное, вам даже не нужно использовать дочерний (>) селектор.

2

По-видимому, невозможно использовать CSS Selectors. Однако с XPath, если кто-то заинтересован:

//div[@id='information']/text()
1

Селектор CSS не выбирает только текстовое содержимое элемента. В этой идее нет ничего нелогичного (у CSS может быть псевдоэлемент для этой цели), но в настоящее время нет спецификации или даже проекта по таким вопросам.

Что вы можете сделать, так это установить стили в элементе и затем переопределить их на любом дочернем элементе, возможно, используя селектор типа #information * который соответствует всем элементам-потомкам или #information > * которые соответствуют всем дочерним элементам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню