Фильтр jQuery: содержит для ссылки (a href=»#»)

#jquery #filter

#jquery #Фильтр

Вопрос:

У меня есть ссылка, которая в данный момент:

 a href="#" 
  

но вскоре клиент изменит ссылку на

 a href="something"
  

Когда ссылка становится чем-то, что я хотел бы использовать jQuery для изменения css, но я не уверен, как написать фильтр для атрибута (href =»»)…

Ответ №1:

Вот два варианта, которые вы можете использовать для сравнения вашего href атрибута:

Href пуст:

 $('a[href=""]') or $('a[href="#"]')
  

Href не является пустым:

 $('a[href!=""]') or $('a[href!="#"]')
  

При сравнении атрибутов jQuery предлагает несколько операторов для сравнения:

  = Is Equal
!= Is Not Equal
^= Starts With
$= Ends With
*= Contains
  

Подробнее о селекторах jQuery здесь.

Комментарии:

1. 1 Спасибо, мне нужны были Contains, но я не смог вспомнить синтаксис

2. Большое спасибо! Совсем забыл об этих нескольких операторах сравнения!

Ответ №2:

Вот селектор для привязки с href, не равным hash:

 $('a[href!="#"]')
  

Комментарии:

1. 1. Я пропустил момент, когда OP хочет выполнить отрицательный поиск.

2. NP, мы все иногда так делаем 🙂

Ответ №3:

Быстрое чтение селекторов jQuery должно сработать (как упоминалось Rionmonster выше). Я просто хотел бы отметить, что вы также можете проверять наличие элементов с определенным атрибутом (который, я полагаю, вам действительно понадобится?) выполнив что-то вроде

 $('a[href]')
  

Это позволяет находить <a> элементы, которые имеют определенный href атрибут, будь то хэш или что-либо еще. Подходит для фильтрации интерактивных якорей.

Ответ №4:

Прочитайте о селекторах jQuery:

http://api.jquery.com/category/selectors/