我有一个检查a的类(整数)的脚本,运行switch语句将该整数值更改为text,并将文本追加到同一listitem标记中的另一个。我使用.each()函数,因为每个listitem都以class = _ [user ID]开头 - 每个用户最多可以有5个条目。足够的解释 - 继承代码:
<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>
当我使用.each()函数扫描每个列表项时,以输入的用户ID开头,它只找到第一个值(在本例中为_12)并将其应用于所有条目;而不是找到_12,_6,_12,_2它找到_12,_12,_12,_12 ......并将开关值“Shoe Straps&amp; Wrist Straps”应用于所有条目 - 这里是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);
});
答案 0 :(得分: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);