找不到()

时间:2012-05-23 15:23:21

标签: javascript jquery

我正在动态创建一堆li元素

$.each(data.attributes.listingImages, function (i, obj){
if(i == 1){
   $('#js-carousel-menu').append('<li media class="active"><a media-frame><img class="js-carousel-item" src=" '+obj.thumbnail+ ' " /></a></li>' );
 }else{
   $('#js-carousel-menu').append('<li media><a media-frame><img class="js-carousel-item" src=" '+obj.thumbnail+ ' " /></a></li>' );
}

然后当我尝试搜索“活跃”li时,它找不到它

$gallery = $(this.el).find('#js-carousel-menu');
var _this = $gallery.find('li.active');

然而,如果我追踪$gallery它会给我:

<ul>
 <li media>...</li>
 <li media class="active">...</li>
 <li media>...</li>
 ...
 <li media>...</li>
</ul>
我错过了什么吗?谢谢

4 个答案:

答案 0 :(得分:1)

由于#js-carousel-menu是一个ID,您不需要找到它,您可以直接选择它。检查选择器是否成功。

alert($(this.el).find('#js-carousel-menu').length)

答案 1 :(得分:0)

由于ID必须是唯一的,$(this.el).find('#js-carousel-menu');无用(可能是您遇到问题的原因):只能有一个#js-carousel-menu

所以,试试:

var _this = $('#js-carousel-menu').find('li.active');

答案 2 :(得分:0)

为什么不直接使用

  

$( '#JS-转盘-菜单&gt; li.active');

答案 3 :(得分:0)

您正在将活动类添加到第二个 li元素(索引1)。所以我假设你只添加一个li,这是你没有李的方式。活性