2015-01-22 3 views
0

Я изо всех сил пытаюсь понять селектор jQuery, который я нашел внутри jsFiddle (http://jsfiddle.net/Pm3cj/3/). Селектор:Использование TILDE внутри сложного селектора jQuery/CSS3

'~.container, ~:has(.container)' 

В чем смысл тильды?

  • Это что-то вроде :not?
  • это какой-то частичный матч ~= оператор?
  • Это какая-то вариация селектора «next siblings»?

Я искал много на JQuery и сайтах W3C, не находя такое использование тильды. По крайней мере, я этого не узнал.

Любой может сказать мне, где такое использование тильды объясняется?

+1

@Quentin - Я предполагаю, что ваш поспешный ответ намекает на http://www.w3.org/TR/selectors/#general-sibling-combinators - мой вопрос: почему нет селектора, предшествующего тильде? и где именно такое использование показано W3C точно? –

+1

@ davidkonrad - Я предполагаю, что ваш поспешный ответ намекает на http://www.w3.org/TR/selectors/#general-sibling-combinators - мой вопрос: почему нет селектора, предшествующего тильде? попробуйте ответить на мой вопрос, который не тот, который другой пользователь конкретно пытался узнать. –

+0

@Quentin - рад видеть, что ваш снисходительный комментарий исчез. –

ответ

1

Помните, что синтаксис синтаксиса jQuery основан на синтаксисе селектора CSS, а в CSS тильда обозначает «любой из следующих братьев и сестер». Так

`~:has(.container)` 

... находит любые исходящие братья и сестры, которые имеют класс container.

+1

В моем вопросе я намекнул, что это может быть вариант селектора «next siblings». Дело в том, что все примеры, которые я могу видеть в документах W3C, это «X ~ Y». В этом случае, похоже, нет X. Мои вопросы: 1) есть ли подразумеваемый X? Это текущий селектор jquery? 3) Где иллюстрируется этот особый случай? Я ценю ваши усилия. Спасибо. –

+0

[Документация] (http://www.w3.org/TR/CSS21/selector.html) – jbutler483

+1

@ jbutler483 - Я предполагаю, что вы поспешили ответить на w3.org/TR/selectors/#general-sibling-combinators - мой Вопрос: почему нет селектора, предшествующего тильде? и где именно такое использование показано W3C точно? –

1

Это было бы неудобно комментировать, так что здесь идет:

Вот пример;

[att~=val] 

и от docs;

Представляет элемент с атрибутом ATT, значение которого представляет собой белый пробелами список слов, одно из которых точно «Вал». Если «val» содержит пробел, он никогда не будет представлять ничего (поскольку слова разделены пробелами). Если «val» - это пустая строка, то никогда не будет представлять ничего.


Следующие селекторы иллюстрируют различия между "=" и "~ =". Первый селектор будет соответствовать, например, значению «copyright copyylelete copyeditor» для атрибута «rel». Второй селектор будет соответствовать только тогда, когда атрибут «href» имеет значение «http://www.w3.org/».

a[rel~="copyright"] 
a[href="http://www.w3.org/"] 

Прочитав это, я надеюсь, что вы могли бы понять физический использовать для этого. Он позволяет вам выбрать «включает» как таковой. Поскольку на самом деле нет селектора ':includes', можно использовать '~', обычно с :contains.


Я верю в вашем примере,

'~.container, ~:has(.container)' 

ли тестирование, если вы можете «найти» класс container где-нибудь после этого, или элемент, который «включает» эту container где-нибудь после того, как ваша кнопка»нажата элемент.

+0

@ jbutler484 - Я ценю ваши усилия. Можете ли вы показать мне, как rel ~ = "copyright" карты ~: has (.container)? Здесь я вижу два вопроса: 1) что заменяет «rel» во втором примере? 2) разрешено ли swap = с: has()? W3C использует тильду только в сочетании с = значением «string содержит». Никаких других применений не упоминается. Вы когда-нибудь использовали тильду таким образом? –

+2

Я никогда не нуждался в такой реализации - я могу только догадываться, что он используется, когда у вас нет контроля над внешней таблицей стилей html. Но есть (я уверен, на 99%) способы полностью * избегать этой неуклюжий реализации, видя, что я никогда не чувствовал необходимости реализовывать это в любом случае. (Я, однако, использовал тильду как селектор, но ничего подобного раньше не использовал). – jbutler483

+1

@ Muzietto: как описано [здесь] (http://api.jquery.com/next-siblings-selector/) – jbutler483

Смежные вопросы