Используете ли вы кавычки в jQuery при поиске значений атрибутов?

Если у меня есть ссылка, как это:

<a data-btn="login"></a>

Если бы я хотел выбрать в jQuery, используя атрибут данных, что мне делать?

var a = $("[data-btn='login']");  //This?

var a = $("[data-btn=login]");    //Or this?

3 ответа

Решение

Начиная с jQuery 1.5 оба подхода будут работать и работать одинаково.

jQuery раньше требовал кавычек вокруг значений атрибутов, поэтому ваш второй селектор не будет работать с предыдущими версиями. Если по какой-то причине вы застряли со старой версией, используйте первый селектор.

Даже в jQuery 1.5+ я все еще использую кавычки, так как иногда они не работают без них.

Забавно, я использую этот синтаксис:

var a = $('[data-btn="login"]');

это связано с моими годами в PHP, где (и это может открыть огромную банку червей) использование двойных кавычек, возможно, медленнее, потому что оно открыто для интерпретации переменных внутри них, тогда как строки с одинарными кавычками - нет, поэтому я использую одинарные кавычки чаще, чем нет.

Я также использую одинарные кавычки в основном в JavaScript, потому что он часто смешивается с HTML, который, технически, должен содержать все значения атрибутов в двойных кавычках, а не в одинарных кавычках, а использование одинарных кавычек избавляет меня от необходимости избегать кавычек.

Другие вопросы по тегам