0

我有一个检查 a 的类(整数)的脚本,运行一个 switch 语句将该整数值更改为文本并将文本附加到同一个 listitem 标记中的另一个。我使用 .each() 函数是因为每个列表项都以 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...并将开关值“鞋带和腕带”应用于所有条目——这是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);
});
4

1 回答 1

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);
于 2010-04-26T12:58:01.727 回答