为什么我不能让我的jQuery代码正确构建我的HTML?

我正在使用Ruby on Rails,jQuery和Embedly API编写应用程序。我像这样写了一段视频:
<%= div_for video do %>

<%= link_to 'video', video.video_url, :class => 'oembed' %>

<% end %>
并在
index
视图中呈现部分:
<div id ='video_div'>
  <%= render @videos %>
</div>
然后我的application.js文件获取链接并使用Embedly API嵌入视频并显示缩略图。我最初用CSS隐藏视频,我希望每个视频及其各自的缩略图都在自己的div中。这意味着我希望每个视频/缩略图对都在自己的div中,这样我就可以将缩略图直接放在视频的顶部。我试过这样做:
$('a.oembed').embedly({maxWidth:300,'method':'replace'}).bind('embedly-oembed', function(e, oembed){ 
    var id = $(this).parent().attr('id');
    $(id).append($("<img>", { src: oembed.thumbnail_url, width:200 }));
});
我的想法是,由于div_for嵌入式ruby创建了一个div,每个视频最初都是一个链接的唯一ID,我会转到链接的父级(具有唯一ID的div),并获取唯一的id属性,然后将缩略图附加到该div。但是,在浏览器中检查我的HTML代码后,缩略图不会被追加。我做错了什么,怎样才能得到我想要的东西?     
已邀请:
看起来问题就在这一行:
 $(id).append($("<img>", { src: oembed.thumbnail_url, width:200 }));
它应该是:
$('#' + id).append($("<img>", { src: oembed.thumbnail_url, width:200 }));
但是,
$(this).parent()
已经返回了你所追求的元素,所以你不需要用你的id做的所有工作:
$(this).parent().append("<img>" ...);
    
我怀疑要么这不是你认为的那样,因为嵌入式创建了更多的html,所以当你试图导航到id时,它可能没有达到你认为应该存在的那个。 如果页面上有一些元素,我会在id周围发出警报以检查其值。 您还可以使用explict选择器调用parent()来查找要查找的内容,因此如果embedly不生成任何div,则可以添加parent('div')。 您也不需要查找要追加的ID,您可以直接从parent(),即parent()。append()进行追加。你以这种方式保存自己的选择器调用。     

要回复问题请先登录注册