Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Переменная в фильтре (https://javascript.ru/forum/jquery/23284-peremennaya-v-filtre.html)

Glook 19.11.2011 01:21

Переменная в фильтре
 
Объясните, пожалуйста, понятным языком, почему не работает такой скрипт

var i = 1;
$('div:eq(i)').show();


Как сделать правильно я знаю, мне нужно просто понять почему код выше неверен.

trikadin 19.11.2011 01:54

Цитата:

Сообщение от Glook
$('div:eq(i)').show();

Потому что надо так:
$('div:eq(' + i + ')').show();
// берём значение i и складываем его со строкой.

Glook 19.11.2011 02:57

Цитата:

Сообщение от trikadin (Сообщение 137568)
берём значение i и складываем его со строкой.

эмм.... ну у меня же в переменной число, и в селектор eq(index) "приходит" числовое значение? так что именно не так-то?

trikadin 19.11.2011 03:01

Цитата:

Сообщение от Glook
Как сделать правильно я знаю, мне нужно просто понять почему код выше неверен.

i=1
alert('div:eq(i)') // здесь i - это символ
alert('div:eq('+i+')')// а здесь i - это переменная, и мы берём её значение..

Glook 19.11.2011 03:13

в конце концов я сделал так
$('div').eq(i).show();

вот меня и смутило, почему это в данном случае значение в скобках является переменной, а в случае с фильтром нет.

trikadin 19.11.2011 03:16

Почему в предложении "Наша планета называется "Земля"" слово "Земля" пишется с большой буквы, а в предложении "Там было пусто - лишь земля под ногами" - с маленькой? Это два разных контекста использования.

Но тут - всё проще. С кавычками - символ, без кавычек - переменная.

Glook 19.11.2011 03:31

а ну вот теперь дошло. я как-то упустил из виду "внешние" кавычки превращающие ВСЁ что внутри них в строку. с чего-то решил, что на значение во вторых скобках они не действуют.
Спасибо, вопрос закрыт, буду внимательнее.


Часовой пояс GMT +3, время: 16:55.