Использование $ (this) с jQuery - PullRequest
0 голосов
/ 04 мая 2011

Я все еще новичок в 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 (в зависимости от того, какие биологические пальцы нажимаются).

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

Ответы [ 3 ]

3 голосов
/ 04 мая 2011

Должно быть так:

$('#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 голосов
/ 04 мая 2011
$('#initvid' + $(this).attr('id')).remove();
1 голос
/ 04 мая 2011

Закрыть. Строка , переданная в $, - это то, что нужно для конкатенации дополнительного идентификатора.

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

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

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

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

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

...