Почему «div [class = mncls sbucls]» работает, а «div.mncls sbucls» - нет? - PullRequest
9 голосов
/ 26 апреля 2011

Работает следующий оператор Jsoup:

 Elements divs = document.select("div[class=mncls sbucls]");

Но эквивалентный статус:

 Elements divs = document.select("div.mncls sbucls");

Не работает.

Почему?

Есть ли у Jsoup проблемы с именами классов, в которых есть пробелы?

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Пробел является потомком селектора:

http://www.w3.org/TR/CSS2/selector.html#descendant-selectors

Во втором примере, когда вы помещаете туда пробел, вы обозначаете другой элемент / класс / селектор, тогда какв первом примере вы явно группируете селектор в одну строку (включая пробел).

1 голос
/ 26 апреля 2011

В именах классов не должно быть пробела. Это спецификация CSS, ничего общего с Jsoup. Технически mncls sbucls - это два отдельных класса (mncls и sbucls).

Селектор атрибута работает, потому что вы выбираете атрибут class, где значение равно mncls sbucls

...