Объединенная переменная как селектор не работает (Javascript / Jquery) - PullRequest
0 голосов
/ 05 апреля 2011

Я озадачен и довольно неопытен с jQuery. Я пытаюсь передать значение из окна Thickbox в элемент ввода на родительской странице. Чтобы определить правильное поле ввода, я пытаюсь объединить два значения, одно из которых я успешно извлек из окна Thickbox, а другое - фрагмент текста, как в примере ниже.

grab_flavor = $('#flavor').val(); //contains 'apple'
alert(grab_flavor); // returns 'apple'
juice = "#" + grab_flavor + "juice";
alert(juice); // returns '#applejuice'
$(juice , top.document).val("favorited"); //doesn't seem to work...
flavor = "#apple";
juice = flavor + "juice";
$(juice , top.document).val("favorited"); // works

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

Я пробовал несколько различных способов объединения, но все они терпят неудачу, когда я пытаюсь включить 'grabflavor' ... очень ценим совет!

обновление: работа над лучшим живым примером ...

обновление 2 (окончательное) : разобрался ... синтаксис в конце концов был действителен, ничего плохого в конкатенации, я просто пропустил небольшую деталь, потому что имел дело с очень длинными селекторами, которые смотрели то же самое ... в следующий раз я сделаю более длительный перерыв, чтобы я мог извлечь пользу из свежих глаз. Упрямая одержимость пониманием проблемы не всегда работает так хорошо. Спасибо, комментаторы, за публикацию и указание на jsfiddle и jsbin, две невероятно полезные находки!

1 Ответ

0 голосов
/ 05 апреля 2011

Если это еще одна опечатка во время транскрипции, проблема здесь:

juice = "#" + grabflavor + "juice";

Вы пропустите подчеркивание в grab_flavor.Исправьте это, и это сработает ( живая копия ).

...