2012-04-21 87 views
0

我想寫一些javascript來確保一個表有lineNumber其中一個特定類的tr元素。我有以下的循環可以這樣做:不知道爲什麼這個選擇器返回大小0

while ($(".functionCodeLine").size() < lineNumber) { 

     console.log($(".functionCodeLine").size()); 

     funcLineRow = $('<tr class="functionCodeLine"></tr>'); 
     table.append(funcLineRow); 

... 
} 

但在我的日誌語句我看到返回的大小爲0。如果我檢查DOM我看到正在添加class屬性新潮流的。所以我有點不知所措,爲什麼大小總是爲0,循環永遠不會終止。我錯過了什麼?

Here's a jsfiddle.net demo

+3

請創建一個HTTP ://jsfiddle.net/ demo。 – 2012-04-21 20:11:13

+1

你爲什麼使用這樣的循環?你只需要:獲取元素的實際數量,得到所需的元素數量,然後使用'for(i = 0; i = diffenrence)'循環得到所需的元素數量差異 – pomeh 2012-04-21 20:12:55

+0

@pomeh假設OP可以得到它在這種情況下,'while'循環比'for'循環更簡潔。 – 2012-04-21 20:16:14

回答

0

所以,我真的不知道是什麼問題,是在上面的代碼,但我還是能夠解決它:

while (table.find(".functionCodeLine").size() < lineNumber) { 

    console.log(table.(".functionCodeLine").size()); 

    funcLineRow = $('<tr class="functionCodeLine"></tr>'); 
    table.append(funcLineRow); 

... 
} 
+0

如果有效,您能否將問題標記爲已解決? – pomeh 2012-04-22 00:26:11

0

嘗試這種說法

$(".functionCodeLine").length 
+2

這是[同樣的事情](http ://api.jquery.com/size/) – 2012-04-21 20:10:16

+1

儘管最好使用'length',但這並不能解決OPs問題,因爲size()和length會返回等價值。 – 2012-04-21 20:11:38

+0

是的,長度產生相同的結果。 – Dejas 2012-04-21 20:19:44

相關問題