2011-05-04 84 views
0

我仍然是一個jquery/javascript新手,所以請原諒我,如果這是一個明顯的。

我正在爲一個會議製作一個藝術家生物頁面(它在此處在實時視圖http://www.thinkinc.org.au/artists.html中)。當您點擊一位藝術家的圖像時,一個colorbox會以藝術家簡介和視頻開啓。點擊縮略圖時,我想發送.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); 
     }); 
    }); 

如果你看一下我的縮略圖代碼,每個有它的生物,他們屬於藝術家的ID。 (例如;)。我想創建一個jquery函數來刪除#initvidhitchens或#initvidtyson(取決於哪些生物拇指被點擊)。

可能丟失了一些非常明顯的東西,但爲什麼不是我當前的代碼工作?

+0

如果它是所有視頻都是同一個容器,爲什麼你需要d刪除和添加時,你可以只是覆蓋? – Khez 2011-05-04 05:06:36

回答

3

它應該是這樣的:

$('#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 

希望這有助於

+0

+1有關擴展說明。 – 2011-05-04 05:21:33

+0

+1不必不必要地創建一個新的jQuery對象 – Phil 2011-05-04 06:01:09

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

關閉。 字符串傳遞給$是什麼需要有額外的標識符連接。它

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

想象的那樣:

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

然而,根據確切的問題,有可能是更清潔的方法來完成這項任務。

快樂編碼。

+0

啊,理解。非常高興看到我是最合適的!隊友的歡呼聲。 – Jascination 2011-05-04 05:05:05