Использование $ (this) с jQuery

#jquery #this

#jquery #это

Вопрос:

Я все еще новичок в jquery / javascript, так что простите меня, если это очевидно.

Я создаю страницу с биографией исполнителя для конференции (она здесь, в режиме реального времениhttp://www.thinkinc.org.au/artists.html ). Когда вы нажимаете на изображение исполнителя, открывается цветное поле с биографией исполнителя и видеороликами. При нажатии на эскизы я хочу отправить команду .remove () на исходное видео («initvid») динамика, который просматривает пользователь.

Оскорбительный код javascript находится здесь:

  $(document).ready(function () {
        $('.thumbnails img').click(function () {
            $('#initvid') $(this).attr('id').remove(); /* I want this to get #initvid   the id of the thumbnail image that was clicked (to make #initvidtyson or #initvidhitchens) then .remove() it */

            $('#vidContainer').html('<iframe id="playingMovie" width="480" height="390" src="'   $(this).attr('toobId')  '" frameborder="0" allowfullscreen></iframe>');

            $('#vidContainer iframe').fadeToggle(400);
        });
    });
  

Если вы посмотрите на код для моих эскизов, у каждого есть идентификатор художника, биографии которого они принадлежат. (например ; ). Я хочу создать функцию jquery, которая удаляет #initvidhitchens или #initvidtyson (в зависимости от того, на какие био-кнопки нажимаются).

Вероятно, отсутствует что-то совершенно очевидное, но почему мой текущий код не работает?

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

1. Если это один и тот же контейнер для всех видеороликов, зачем вам удалять и добавлять, когда вы можете просто перезаписать?

Ответ №1:

Это должно быть так:

 $('#initvid'   $(this).attr('id')).remove();
  

или это:

 $('#initvid' this.id).remove();
  

Ваш код не работал, потому что:

  $('#initvid')   //Here you're getting element with id 'initvid', which doesn't exist
 $(this).attr('id').remove();  //The result of getting id attribute wasn't a jQuery object, so it doesn't have 'remove' method
  

Надеюсь, это поможет

Ответ №2:

 $('#initvid'   $(this).attr('id')).remove();
  

Ответ №3:

Закрыть. Строка, переданная в $ , — это то, для чего необходимо объединить дополнительный идентификатор.

 $('#initvid'   $(this).attr('id')).remove();
  

Думайте об этом как:

 $('#initvid'   extra) // the *result* of the string concat is used as the selector
  

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

Удачного кодирования.

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

1. Ах, понял. Очень рад видеть, что я был почти прав! Приветствую, приятель.