2013-02-18 3 views
3

Мое понимание функции тильды в Javascript заключается в том, что она выполняет побитовое действие (т. Е. 1 становится 0 и наоборот 1000 становится 0111). Тем не менее, я недавно начал работу над существующим проектом, где мой предшественник включал много кода, как это:Тильда в селекторе jQuery

var iValuation = $('div[class~="iValuation"]'); 

Может кто-нибудь сказать мне, что цель тильды в данном случае это? Я не сталкивался с этим раньше и не смог найти ссылку на него в Интернете.

+1

Просмотр http://api.jquery.com/category/selectors/ ведет один [это ] (http://api.jquery.com/attribute-contains-word-selector/) – Blazemonger

+0

Это не оператор JavaScript, это селектор jQuery. API имеет [целую страницу] (http://api.jquery.com/category/selectors/) о них. –

ответ

2

Это не является оператором JavaScript. Он появляется в строке.

Поскольку эта строка передается функции jQuery, и она не похожа на кусок HTML, это selector.

В частности одна из attribute selectors:

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

8

Плиточные используются в качестве селектора означает

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

, который не является оператором JavaScript вообще.

Больше от дока:

Этого селектор соответствует тестовой строке против каждого слова в значении атрибута в , где «слово» определяются как строка, ограниченной пробелов. Селектор соответствует, если тестовая строка точно равна любому из слов.

Например:

<input name="man-news" /> 
<input name="milk man" /> 
<input name="letterman2" /> 
<input name="newmilk" /> 

$('input[name~="man"]') будет выбирать только второй input, потому что его атрибут name отделяется space.

Для подробно см here

+0

Стоит отметить, что это просто функциональность JQUERY, а не что-то врожденное для Javascript. ОП понимают, что делает тильда, правильно, поскольку акции JS идут. – kbelder

2

$ является функцией jQuery селектора, который содержит CSS3 селектора Строку: В соответствии с CSS3 Selector Definition, селектором вы столкнулись выбираешь:

Е [Foo ~ = «бар»] в Й элементе, Значение атрибута «foo» - это список значений, разделенных пробелами, один из которых в точности равен «бар»

DOM.Поскольку Тильда завернута в строку, она не работает как оператор.

0

В случае, если вам интересно о разнице между

[class~="foo"] 

и

[class*="foo"] 

~ будет соответствовать только с пробельных вокруг (например, 'Foo бар', но не 'foo-1')
* будет соответствовать с нашими без пробелов вокруг (например. 'Foo бар' и 'Foo-1')

~ - Атрибут Spaced Selector
* - Атрибут содержит селектор

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