jQuery: $(«#» $(this).attr(‘id’) «_div»)

#jquery #this #selector

#jquery #этот #селектор

Вопрос:

Я пытаюсь изменить элемент, связанный с именем. Я беру значения из выпадающего списка и отображаю их в div. Их идентификаторы: выбранные_термы, выбранные_термы_div

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

Этот код не работает:

 $("#"   $(this).attr('id')   "_div")
  

Заранее спасибо!

Редактировать: весь скрипт целиком:

 $(document).ready(function(){
    $("select").change(function () {
          var str = "";
          $("#selected_terms option:selected").each(function () {
                str  = $(this).text()   '<br>';
              });

          $("#"   $(this).attr('id')   "_div").html(str);
    })    
        .change();
});
  

Примечание: Это сработает, если я изменю эту строку на:

 $("#selected_terms_div").html(str);
  

Комментарии:

1. Здесь недостаточно информации для решения вашей проблемы. Пожалуйста, опубликуйте больше вашего JavaScript. Небольшой фрагмент в вашем вопросе кажется прекрасным.

2. Я не вижу ничего явно неправильного. Какую ошибку вы получаете? Кроме того, можете ли вы показать больше контекста вокруг вызова? В частности, меня интересует, каким может быть значение ‘this’ — ‘this’ иногда может быть немного сложным в JavaScript.

Ответ №1:

Это начало работать. Вы, ребята, были правы. Это кажется правильным, потому что так оно и есть. Спасибо за ответ.