Dorian Fabre Dorian Fabre - 8 days ago 6
Javascript Question

Tilde in jQuery selector

My understanding of the tilde's function in Javascript is that it performs a bitwise not operation (i.e. 1 becomes 0 and vice versa; 1000 becomes 0111). However, I've recently begun work on an existing project where my predecessor has included a lot of code like this:

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


Can anyone tell me what the purpose of the tilde in this instance is? I've not come across it before and haven't been able to find any reference to it online.

Answer

That isn't a JavaScript operator. It appears in a string.

Since that string is passed to the jQuery function, and it doesn't look like a piece of HTML, it is a selector.

Specifically one of the attribute selectors:

Represents an element with the att attribute whose value is a whitespace-separated list of words, one of which is exactly "val". If "val" contains whitespace, it will never represent anything (since the words are separated by spaces). Also if "val" is the empty string, it will never represent anything.