Что означает "a [href * = #]: not ([href= #])" код означает?

Я не понимаю, что означает этот код?

a[href*=#]:not([href=#])

Спасибо!

Ответы

Ответ 1

Просто:

a[href*=#] 

получает все якоря (a), содержащие # в href.

Но с:

:not([href=#])

исключает якоря с href, точно равным #.

Пример:

<a href="#step1">yes</a>
<a href="page.php#step2">yes</a>
<a href="#">no</a> 

селектор получает первые два якоря, но исключает последние.

Ответ 2

На всякий случай у кого-то была такая же проблема, как и я, и новая версия jQuery: Решение не должно использовать a[href*=#]:not([href=#]), но

Использование

a[href*="#"]:not([href="#"])

Это было изменением в jQuery 2.2.4 и далее.

Ответ 3

означает, что все элементы с атрибутом href, координирующим '#', except те, чей атрибут href равен #

Ответ 4

Это селектор CSS3, который получает все a, чей атрибут href содержит #, но не просто составлен единственного # char.

например.

Сопрягано

<a href="#home">Home</a>
<a href="index.html#contact">Contact</a>

Не согласовано

<a href="#">Top</a>

Ответ 5

Это селектор CSS, который соответствует любому элементу a, который имеет атрибут href, содержащий символ #, но не привязывает теги, которые имеют только #.

Так, например, он будет соответствовать: <a href="#test">Test Anchor</a>, но не <a href="#">Blank</a>