簡體   English   中英

jquery選擇當前tr的第二個和第三個單元格

[英]jquery select second and third cell of current tr

我是新的jquery.Below是我的html表在內容頁面。在母版頁我還有其他表。 當我通過拖動從'tableAppointment'中選擇表格單元格時。 它選擇頁面中的所有表格單元格。 用戶有限制只選擇當前tr的第二個和第三個單元格。如果用戶選擇三行以上,則發出警報(“時隙不超過45分鍾。”)..如何用jquery做到這一點。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Drag selection example</title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">

        google.load("jquery", "1.3.2");

        google.setOnLoadCallback(function ()
        {
            var active = false;

            $('#tableAppointment tr td:nth-child(2), #tableAppointment tr td:nth-child(3)').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 tr td:nth-child(2), #tableAppointment tr td:nth-child(3)').mousemove(function (ev)
            {
                if (active)
                {
                    $(this).addClass("csstdhighlight");
                    $(this).addClass("temp_selected");
                }
                if ($('.temp_selected').length > 6)
                {
                    alert("Time slot not more than 45 minutes.")
                    return false;
                }
            });

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

            });
        });
    </script>
    <style type="text/css">
        .csstdhighlight
        {
            background-color: #ccffcc;
        }
    </style>
</head>
<body>
    <table id="tableAppointment" cellspacing="1" width="50%" border="1" align="center">
        <tr>
            <td bgcolor="#ffffff">
            </td>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                <b>Patient Name</b>
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd" valign="top" width="70px">
                8:00AM
            </td>
            <td class="csstablelisttd">
                0
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                15
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                30
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                45
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd" valign="top" width="90px">
                9:00AM
            </td>
            <td class="csstablelisttd">
                0
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                15
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                30
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
        <tr>
            <td class="csstablelisttd">
            </td>
            <td class="csstablelisttd">
                45
            </td>
            <td class="csstablelisttd">
            </td>
        </tr>
    </table>    
</body>
</html>

嘗試使用$('#tableAppointment tr td:nth-child(2)')

alert("time slot not more than 45 minutes.")

<script type="text/javascript">

        google.load("jquery", "1.3.2");

        google.setOnLoadCallback(function ()
        {
            var active = false;


            $("#tableAppointment tr td:nth-child(2), #tableAppointment tr td:nth-child(3)").mousedown(function (ev)
            {
                ev.preventDefault(); // this prevents text selection from happening
                if(get_num_rows() > 3)
                { 
                    alert("time slot not more than 45 minutes");
                    return false; 
                }
                active = true;
                num_rows_selected = num_rows_selected + 1;
                $(".csstdhighlight").removeClass("csstdhighlight"); 
                $(this).addClass("csstdhighlight");
            });

            $("td").mousemove(function (ev)
            {
                if (active)
                {
                    $(this).addClass("csstdhighlight");
                }
            });

            function get_num_rows() {
                var count = 0;
                $("#tableAppointment tr").each(function(){
                    if($(this).find('td.csstdhighlight').length > 0)
                    {
                      count++;
                    }
                });
                return count;
            }

            $(document).mouseup(function (ev)
            {
                active = false;
            });

        });

    </script>    

這樣的事怎么樣?

$("td").mousemove(function (ev) {
    if (active){
        $(this).addClass("csstdhighlight");
    }
    if($('.csstdhighlight').length > 2){
        alert("time slot not more than 45 minutes.")
    }
});

因此,如果有超過2個元素包含csstdhighlight類。 然后它會提醒錯誤。


第二次嘗試:

$("#tableAppointment td").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");
        });

        $("td").mousemove(function (ev)
        {
            if (active)
            {
                $(this).addClass("csstdhighlight");
                $(this).addClass("temp_selected");
            }
            if($('.temp_selected').length > 2){
                alert("time slot not more than 45 minutes.")
            }
        });

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM