jquery单元格选择开始为更多单元格创建rowspan

时间:2012-06-12 06:04:06

标签: jquery html css

see fiddle

首先,我是jquery的新手。

我必须只选择一个单元格#tableAppointment tbody tr td:nth-child(2) 和文本框值应该转到选择开始的下一个单元格。

我在我的小提琴中制作了功能,但文本框值转到了所有单元格。我必须将文本框值设置为第一个单元格,其他单元格设置为rowspan(意味着用户看到所有单元格选择只有一个文本框值)。为了在下一个单元格中获取值,我已经采用了html的span标记,但我不想要span标记。

//ONE cell selection code
var active = false;

            $('#tableAppointment tbody tr td:nth-child(2)').mousedown(function (ev)
            {
                active = true;
                $(".csstdhighlight").removeClass("csstdhighlight"); // clear previous selection
                ev.preventDefault(); // this prevents text selection from happening
                $(this).addClass("csstdhighlight");
                $(this).addClass("temp_selected");
            });

            $('#tableAppointment tbody tr td:nth-child(2)').mousemove(function (ev)
            {
                if (active)
                {
                    $(this).addClass("csstdhighlight");
                    $(this).addClass("temp_selected");
                }
                if ($('.temp_selected').length == 3)
                {
                    return false;
                }
                if ($('.temp_selected').length > 3)
                {
                    alert("Time slot not more than 30 minutes.");
                    $(this).removeClass("csstdhighlight");
                    $(this).removeClass("temp_selected");
                    return false;
                }
            });

            $(document).mouseup(function (ev)
            {
                active = false;
                $('.temp_selected').removeClass('.temp_selected');

            });

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找这样的东西:

jQuery('#update').click(function() {
    var cells=$('#tableAppointment tbody tr td:nth-child(3)');
    var i=0;
    var topcell=false;
    cells.each(function() {
        var $cell = $(this);

        if ($cell.hasClass('csstdhighlight')) {
            if(i==0){
                $cell.find('span').text(jQuery('#patientNames').val());
                topcell=$cell;
            }else{
               $cell.remove();
            }
            i++;
        }
    });
    if(topcell) topcell.attr('rowspan',i);
});​