Лингвофорум

Лингвоблоги => Личные блоги => Блоги => Bhudh => Тема начата: Bhudh от июля 18, 2012, 00:44

Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 00:44
<...>
<p id="par_1"></p>
<p id="par_2"></p>
<...>
<script>
$('#par_1').append(text_1);
$('#par_2').append(text_2);
</script>

          ;up:


<...>
<p id="#"></p>
<...>
<script>
$('##').append(text_3);
</script>

          (http://www.kolobok.us/smiles/standart/snooks.gif)
Название: Как обломать jQuery
Отправлено: RawonaM от июля 18, 2012, 07:53
ЦитироватьHTML4 id attribute

The ID and NAME elements must start with a letter i.e. upper case A to Z or lower case a to z; a number is not allowed. After the first letter any number of letters (a to z, A to Z), digits (0 to 9), hyphens (-), underscores (_), colons (:) and periods (.) are allowed.
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 08:27
:fp:
У џКвери проблем никаких, проблемы только у Бода.
$('#\\#').append(text_3); или $('[id="#"]').append(text_3);

Надо документацию сначала читать, прежде, чем что-то заявлять:
ЦитироватьIf the id contains characters like periods or colons you have to escape those characters with backslashes.
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 10:55
Цитата: RawonaM от июля 18, 2012, 07:53
Цитата: HTML4 id attribute

The ID and NAME elements must start with a letter i.e. upper case A to Z or lower case a to z; a number is not allowed. After the first letter any number of letters (a to z, A to Z), digits (0 to 9), hyphens (-), underscores (_), colons (:) and periods (.) are allowed.
Вкурсе. Но в Опере document.getElementById('#') прекрасно работает :).
Кстати, document.getElementById('_') тоже, несмотря на.


Цитата: fujhi от июля 18, 2012, 08:27У џКвери проблем никаких
Цитата: Bhudh от июля 18, 2012, 00:26И прямо взять его jQuery уже не сможет
Прямо — это как getElementById(). Без дополнительных символов.
Так-то можно и $(document.getElementById('#')) написать, и всё сработает.
Но это всё равно будет костыль, без применения которого до тэга не дотянуться.
...
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:09
Цитата: Bhudh от июля 18, 2012, 10:55
Прямо — это как getElementById(). Без дополнительных символов.
:fp:
Это не костыль, а семантика селектора. Причём в документации она описана с примерами. Но нет же, мы же лучше авторов знаем, что «должны» делать селекторы. Ты ещё регулярки обвини в том, что они не могут «прямо» найти строку с точкой, мол, «\.» — это костыль, надо, чтобы угадывали, когда . метасимвол, а когда нет.

Вообще, $("div#hello o").hide() — это костыль. Не костылём было бы писать «скрыть все абзацы в блоке hello». Твои утверждения примерно такой же глубины.
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 11:17
Я понимаю,что мета. Я имел в виду, что так можно "спасти" элемент от перебора, буде потребуется. Без условий и регулярок тут уже не обойдёшься: откуда ты узнаешь, куда совать свои слэши, а куда не надо⁈
Хотя от $('*') не знаю, спасёт ли... Надо проверить...
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:19
— Как обломать C?
— Назвать переменную if.
— Но ведь так задумано!
— Да, но в Scheme (define if 1) прекрасно работает.
Одухотворённая тема.
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:24
Цитата: Bhudh от июля 18, 2012, 11:17
Я имел в виду, что так можно "спасти" элемент от перебора, буде потребуется. Без условий и регулярок тут уже не обойдёшься: откуда ты узнаешь, куда совать свои слэши, а куда не надо⁈
Ничего не понял.

Цитата: Bhudh от июля 18, 2012, 11:17
Без условий и регулярок тут уже не обойдёшься: откуда ты узнаешь, куда совать свои слэши, а куда не надо⁈
Почему? Если тебе обязательно надо избежать экранирования, то используешь полную форму xxx[id="yyy"] вместо сокращённой xxx#yyy и обходишься без слэшей.
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 11:27
Цитата: fujhi от июля 18, 2012, 11:19— Как обломать C?
— Назвать переменную if.
— Но ведь так задумано!
— Да, но в Scheme (define if 1) прекрасно работает.
Криво.
Опера — не другой язык программрования, а один из интерпретаторов.
А # не совсем зарезервирован. В JS он тащемта не используется, только в HTML/CSS.
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:29
Цитата: Bhudh от июля 18, 2012, 10:55
Вкурсе. Но в Опере document.getElementById('#') прекрасно работает :).
Надо сравнивать $("##") не с document.getElementById('#'), а с document.querySelectorAll (http://www.w3.org/TR/selectors-api/)("##"). Поддерживает ли его Опера — не знаю.
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:31
Цитата: Bhudh от июля 18, 2012, 11:27
Опера — не другой язык программрования, а один из интерпретаторов.
Не криво. Разница между getElementById("...") и $("...") сравнима с разницей между Си и Схемой.

Цитата: Bhudh от июля 18, 2012, 11:27
А # не совсем зарезервирован. В JS он тащемта не используется, только в HTML/CSS.
:fp:
Он зарезервирован не в JavaScript'е в целом, а в синтаксисе селекторов.
Название: Как обломать jQuery
Отправлено: RawonaM от июля 18, 2012, 11:32
Цитата: fujhi от июля 18, 2012, 11:31
:fp:
:+1:
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 11:39
Поддерживает-то она почти всё...
Но:
Цитата: DOMException: SYNTAX_ERR
:(
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 11:41
Цитата: fujhi от июля 18, 2012, 11:31Он зарезервирован не в JavaScript'е в целом, а в синтаксисе селекторов.
С каких пор синтаксис селекторов CSS относится к js⁈
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:50
Цитата: Bhudh от июля 18, 2012, 11:39
Поддерживает-то она почти всё...
Да ну? Недавно столкнулся с тем, что Опера — единственный браузер, который не позволяет мониторить вставку/вырезание/копирование (http://www.quirksmode.org/dom/events/cutcopypaste.html).
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:52
Цитата: Bhudh от июля 18, 2012, 11:41
Цитата: fujhi от июля 18, 2012, 11:31Он зарезервирован не в JavaScript'е в целом, а в синтаксисе селекторов.
С каких пор синтаксис селекторов CSS относится к js⁈
:fp:
Синтаксис селекторов (которые не только CSS, хотя они там появились) имеет самое прямое отношение к функциям jQuery и к функциям SelectorAPI: эти функции принимают аргументы в этом синтаксисе.

А к JS в целом, понятно, этот синтаксис отношения практически не имеет: ActionScript или RhinoJS не имеют никакого отношения к селекторам, это да.
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 11:54
Offtop
Валентин Н., отдайте, пожалуйста, Bhudh'у его компьютер!
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 12:03
Цитата: fujhi от июля 18, 2012, 11:50Опера — единственный браузер
12-я уже вроде мониторит...
Во всяком случае, все галки на Test page выставила.
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 12:10
Цитата: fujhi от июля 18, 2012, 11:52Синтаксис селекторов (которые не только CSS, хотя они там появились) имеет самое прямое отношение к функциям jQuery и к функциям SelectorAPI
Я-то спрашивал не про библиотеку...
На http://www.w3.org/TR/selectors-api есть ссылка на Standard ECMA-262 (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf), но поиск выражения «Selectors API» по ней ничего не дал... :donno:
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 12:12
Цитата: Bhudh от июля 18, 2012, 12:10
Цитата: fujhi от июля 18, 2012, 11:52Синтаксис селекторов (которые не только CSS, хотя они там появились) имеет самое прямое отношение к функциям jQuery и к функциям SelectorAPI
Я-то спрашивал не про библиотеку...
См. заголовок темы. jQuery — это библиотека.

А спрашивать ты вообще ничего не спрашивал.

Ладно, я самоустраняюсь из этой темы — я от неё тупею.
Название: Как обломать jQuery
Отправлено: Bhudh от июля 18, 2012, 12:14
Цитата: fujhi от июля 18, 2012, 12:12А спрашивать ты вообще ничего не спрашивал.
Цитата: Bhudh от июля 18, 2012, 11:41С каких пор синтаксис селекторов CSS относится к js⁈
Название: Как обломать jQuery
Отправлено: fujhi от июля 18, 2012, 20:37
Цитата: Bhudh от июля 18, 2012, 12:14
Цитата: Bhudh от июля 18, 2012, 11:41С каких пор синтаксис селекторов CSS относится к js⁈
Цитата: fujhi от июля 18, 2012, 11:52
Синтаксис селекторов (которые не только CSS, хотя они там появились) имеет самое прямое отношение к функциям jQuery и к функциям SelectorAPI: эти функции принимают аргументы в этом синтаксисе.

А к JS в целом, понятно, этот синтаксис отношения практически не имеет: ActionScript или RhinoJS не имеют никакого отношения к селекторам, это да.