коротко и просто: ДА !
длинная история (все еще короткая)
$('[id=foo]')
используетSizzle (механизм запросов css) для выбора элемента, тогда как
$('#foo')
напрямую вызывает getElementById
.
Чтобы получить действительно длинную историю, вот так: $('[id=foo]')
- это синоним $('*:[id=foo]')
, который использует универсальный селектор.Это означает, что он запрашивает ALL узлы в вашей разметке и затем смотрит, какие из них имеют id === foo
(который, мы надеемся, будет соответствовать только одному элементу, ID = уникальный).Это, конечно, дорого, довольно дорого.И именно поэтому вы никогда не должны писать такой селектор! Всегда полностью квалифицируйте это, если возможно, как $('span:[id=foo]')