2010-04-26 22 views
0

使用。每()命令我有一個腳本,檢查類(整數)的,運行一個switch語句來改變整數值文本並添加文本到另一個在同一個列表項標籤。我用的。每個()函數,因爲每個列表項與類開始= _ [用戶ID] - 每個用戶可以有多達5個條目..夠解釋 - 繼承人的代碼:如何正確jQuery中

<HTML> 
    <li class='_44074'><div class='_12' style='width:380px;'><div style='width:60px; float:left;'>1st</div><div class='verify-type' style='float:left; width:160px;'></div><div style='float:left; width:120px;'>04/26/10 07:29 AM</div></div></li> 
    <li class='_44074'><div class='_6' style='width:380px;'><div style='width:60px; float:left;'>2nd</div><div class='verify-type' style='float:left; width:160px;'></div><div style='float:left; width:120px;'>04/23/10 03:29 PM</div></div></li> 
    <li class='_44074'><div class='_12' style='width:380px;'><div style='width:60px; float:left;'>3rd</div><div class='verify-type' style='float:left; width:160px;'></div><div style='float:left; width:120px;'>04/23/10 03:18 PM</div></div></li> 
    <li class='_44074'><div class='_2' style='width:380px;'><div style='width:60px; float:left;'>4th</div><div class='verify-type' style='float:left; width:160px;'></div><div style='float:left; width:120px;'>04/23/10 02:28 PM</div></div></li> 
    </HTML> 

當我使用的。每個()函數來通過每個listItems中與輸入的用戶ID begining它僅找到的第一個值(在本例_12)和適用的掃描,爲了所有的條目;而不是尋找_12,1-6,_12,_2發現_12,_12,_12,_12 ...並應用轉換值 「鞋繩&腕帶」 的所有條目 - 這裏是java:

$("div#history-menu div#history-text li." + valueid).each(function(){ 
      valueid = $("div#center-box input").val(); 
    checkedvalue=""; 
    checkedvalue = $("div#history-menu div#history-text li." + valueid + " div").attr('class'); 
    switch(checkedvalue){ 
     case '_2':lcCheckedMessage = "Shoes"; break; 
     case '_4':lcCheckedMessage = "Shoe Straps"; break; 
     case '_6':lcCheckedMessage = "Shoes & Shoe Straps"; break; 
     case '_8':lcCheckedMessage = "Wrist Straps"; break; 
     case '_10':lcCheckedMessage = "Shoes & Wrist Strap"; break; 
     case '_12':lcCheckedMessage = "Shoe Straps & Wrist Strap"; break; 
    }; 
    $("div#history-menu div#history-text li." + valueid + " ." + checkedvalue + " .verify-type").text(lcCheckedMessage); 
}); 

回答

3

這條線:

checkedvalue = $("div#history-menu div#history-text li." + valueid + " div").attr('class'); 

將再次執行搜索,總是找的第一個項目。相反,使用的this值來獲得當前項目:

checkedvalue = $(this).find('div').attr('class'); 

你需要做的最後一行類似的東西,例如

$(this).find(".verify-type").text(lcCheckedMessage); 
+0

哇靠你真棒!非常感謝!!這是完美的 - 所以嚇壞容易 – sadmicrowave 2010-04-26 13:02:39

+0

使用'.find(「格」)'將返回所有嵌套的div。有幾個(如果你滾動到右側看到)。你需要使它具體到第一個'div'。 – user113716 2010-04-26 13:03:22

+0

@patrick:是的,但是'ATTR(..)'將只能得到第一個元素的屬性值,所以如果超過一個'div'匹配也沒關係。 – interjay 2010-04-26 13:06:38