Я пытаюсь найти текст внутри элемента с помощью селектора 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>
Есть идеи?
ПРИМЕЧАНИЕ. Я разбираю страницу, поэтому я не контролирую элементы
Таким образом, вы хотите получить текст внутри #information
но вам не нужен div
и span
? Кажется довольно простым:
#information {
/* property values */
}
#information > div {
display: none; /* removes content of child div */
}
#information > span {
display: none; /* removes content of child span */
}
Наверное, вам даже не нужно использовать дочерний (>
) селектор.
По-видимому, невозможно использовать CSS Selectors. Однако с XPath, если кто-то заинтересован:
//div[@id='information']/text()
Селектор CSS не выбирает только текстовое содержимое элемента. В этой идее нет ничего нелогичного (у CSS может быть псевдоэлемент для этой цели), но в настоящее время нет спецификации или даже проекта по таким вопросам.
Что вы можете сделать, так это установить стили в элементе и затем переопределить их на любом дочернем элементе, возможно, используя селектор типа #information *
который соответствует всем элементам-потомкам или #information > *
которые соответствуют всем дочерним элементам.