表遍历有tr id错误

时间:2013-03-12 11:15:50

标签: jquery

Demo

$(function (){                
    selectServiceRow(1) ;
    $(document).on('click', '#tableList', function (e){
         var index = parseInt($(e.target).closest('tr').index());
         if(index==0){return;}
         selectServiceRow(index);
    });
});

function selectServiceRow(rowIndex){                 
     $('#tableList').find('tr').eq(rowIndex)
          .removeClass('csstrred').addClass('csstablelisttdselected');
}

从上面的小提琴你看到当我点击表中的任何一行时,选择了defaut第一行我必须显示任何行有id'错误'是红色但是点击行必须有类csstablelistselected' * 示例: *默认选择第一行。如果我点击第4行,则显示第1行类为红色beacuse tr id为'error'我应该怎么做。

2 个答案:

答案 0 :(得分:1)

您使用的是error的多个ID,您应该真的使用一个类(使用重复的ID并不是一个好习惯,所有这些都可以证明是一场噩梦)

无论如何,这将解决它:

function selectServiceRow(rowIndex)
{
    var found = $("#tableList tr:eq(" + rowIndex + ")");
    $("#tableList tr").removeClass("csstablelisttdselected");
    $("#tableList tr[id='error']").addClass("csstrred");
    found.addClass('csstablelisttdselected').removeClass("csstrred");   
}

小提琴:http://jsfiddle.net/WVQ5p/5/

答案 1 :(得分:1)

试试这个:

$(function ()
{                
    selectServiceRow(1) 

    $(document).on('click', '#tableList', function (e)
    {
        $('#tableList tr.csstablelisttdselected').each(function(){
            $(this).removeClass('csstablelisttdselected');
        });
        var index = parseInt($(e.target).closest('tr').index());
        if(index==0){return;}
        selectServiceRow(index);
    });
});

小提琴: http://jsfiddle.net/WVQ5p/4/