Элементы, создающие jQuery, выглядят как неопределенные на следующей строке - PullRequest
0 голосов
/ 20 октября 2011

Я добавил новые элементы в пустое "ul", но когда я пытаюсь получить доступ к вновь добавленному элементу из jQuery, но он не определен. Я дизайнер, поэтому не понимаю, что происходит. Я создал более простую версию по адресу: jsfiddle .

  1. Я извлекаю данные из другого div и помещаю их в элементы списка, а финальное добавление добавляю в ul.thumbs ---- Это прекрасно работает, и я вижу все внутри целевого ul.
  2. Я пытался получить li: имя класса first-child a из ul.thumbs, но безуспешно. Оно говорит, что оно не определено ... пока я могу видеть его внутри ul.thumbs.

    $(document).ready(function () {
    var catName;
    var thumbLi="";
    
    $("#cat-nav li a").each(function(){        
        catName = $(this).html();
    
        $("#portdata li").each(function () {
            itemCat =  $(this).attr("class");
    
            if(catName==itemCat){
                itemCat = $(".thumb", this).html();
                    thumbLi += "<li>" + itemCat + "</li>";
            }
        });
        $(thumbLi).appendTo("div.box2 ul.thumbs");        
    });
    
    var firstOne = $(".thumbs li:first-child a").attr("class");
    alert(firstOne);/*Why is it undefined*/
    

    });

Ответы [ 3 ]

2 голосов
/ 20 октября 2011

var firstOne = $(".thumbs li:first-child a").attr("class");

Вы устанавливаете атрибут class селектора в firstOne, и к этому селектору не прикреплен класс.

эта скрипка работает и оповестит класс тега A первого li внутри .thumbs

Возможно, вы хотели предупредить сам элемент, а не его класс?

0 голосов
/ 20 октября 2011

В вашем jsfiddle вы выбираете класс элемента a ($("ul li:first-child a")), однако addClass выполняется для каждого родителя li ($("ul li")).

0 голосов
/ 20 октября 2011

Нет значения по умолчанию для thumbLi. Единственное место, где он может получить значение в этом коде, находится здесь:

if(catName==itemCat){
    itemCat = $(".thumb", this).html();
    thumbLi += "<li>" + itemCat + "</li>";
}

Необходимо убедиться, что перед запуском $(thumbLi).appendTo("div.box2 ul.thumbs"); значение thumbLi имеет.

...