2011-10-20 50 views
0

我在一個空的「ul」中添加了新的元素,但是當我嘗試從jQuery訪問新添加的元素,但是它的未定義。我是設計師,所以不要發生什麼事情。請幫忙。我創建了一個更簡單的版本:jsfiddle ....我可能沒有很好地解釋它。讓我再試一次創建jQuery的元素在下一行看起來像undefined?

  1. 我從另一個DIV提取數據並投入列表項,並最終將其添加追加到ul.thumbs ----這個偉大的工程,我可以看到目標UL裏面的每一件事情。
  2. 我試圖讓李:從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*/ 
    

    });

+0

您可能想要解釋您正在嘗試實現的功能並顯示示例標記,因爲此代碼沒有多大意義。 –

+0

是否可以爲此設置一個jsfiddle?如果我們能夠看到html與此一起去,那將是有用的。 – TommyBs

+0

不能沒有看到起始html – Hogan

回答

2

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

要設置選擇的class屬性爲firstOne,而選擇沒有連接到它的類。

this fiddle工程,並提醒類的第一李裏.thumbs

也許你的意思是提醒元素本身,而不是它的類的標籤嗎?

+0

它有一個類,我可以看到它在螢火蟲唯一可能的問題是這個語句運行時,每個仍在運行或根本不運行,我認爲有需要一些綁定或像這樣的事情不知道 – Imran

+0

@Imran這是不可能的。向我們展示真正的標記的真正的小提琴,所以我們不需要根據你的其他jsfiddle猜測東西,這與假想的不一樣。 –

0

thumbLi沒有默認值。它可以永遠得到該代碼的值的唯一地方是在這裏:

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

你需要確保之前$(thumbLi).appendTo("div.box2 ul.thumbs");運行,thumbLi有一個值。

+0

我已經添加它,它的附加,但仍然不能訪問jQuery的第一個元素 – Imran

0

在你的jsfiddle,您選擇的類a元素($("ul li:first-child a")),然而addClass正在對每個家長li$("ul li"))進行。

相關問題