در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

سیدرضا بازیار

ویرایش یک جدول html و مرتب کردن آن بر اساس اعداد

من یه جدول html دارم که میخوام ویرایشش کنم

جدول

میخوام ابتدا از حالت Sortable خارج بشه و بر اسال سطر rank که همگی عدد هستند، به صورت نزولی از کوچک ترین عدد به بزرگترین عدد مرتب سازی بشه. بدون اینکه روی اون کلیک بشه!

راه حل چیه؟

عدد ها ممکنه در هر ثانیه تغیییر کنند. به همین دلیل میخوام به صورت خودکار از کوچک ترین عدد به بزرگترین عدد مرتب سازی بشه

دانلود جدول

#جدول #مرتب_سازی_جدول
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
soheil One

با سلام. به این ادرس یه سر بزن جوابتو میگیری.

آدرس

اگه جا نزنی، هنوزم یه شانس دیگه داری...
soheil One

با استفاده از این کد هم میتونی با کلیک بر روی سر ستون ها اونارو مرتب کنی


<html>

<head>
    <meta http-equiv="content-type" content="text/html;charset=Windows-1252">
    <script type="text/javascript">
        var people, asc1 = 1,
            asc2 = 1,
            asc3 = 1;
        window.onload = function () {
            people = document.getElementById("people");
        }

        function sort_table(tbody, col, asc) {
            var rows = tbody.rows,
                rlen = rows.length,
                arr = new Array(),
                i, j, cells, clen;
            // fill the array with values from the table
            for (i = 0; i < rlen; i++) {
                cells = rows[i].cells;
                clen = cells.length;
                arr[i] = new Array();
                for (j = 0; j < clen; j++) {
                    arr[i][j] = cells[j].innerHTML;
                }
            }
            // sort the array by the specified column number (col) and order (asc)
            arr.sort(function (a, b) {
                return (a[col] == b[col]) ? 0 : ((a[col] > b[col]) ? asc : -1 * asc);
            });
            // replace existing rows with new rows created from the sorted array
            for (i = 0; i < rlen; i++) {
                rows[i].innerHTML = "<td>" + arr[i].join("</td><td>") + "</td>";
            }
        }
    </script>
    <style type="text/css">
        table {
            border-collapse: collapse;
            border: none;
        }
        th,
        td {
            border: 1px solid black;
            padding: 4px 16px;
            font-family: Times New Roman;
            font-size: 24px;
            text-align: left;
        }
        th {
            background-color: #C8C8C8;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <table>
        <thead>
            <tr>
                <th onclick="sort_table(people, 0, asc1); asc1 *= -1; asc2 = 1; asc3 = 1;">Name</th>
                <th onclick="sort_table(people, 1, asc2); asc2 *= -1; asc3 = 1; asc1 = 1;">Surname</th>
                <th onclick="sort_table(people, 2, asc3); asc3 *= -1; asc1 = 1; asc2 = 1;">Age</th>
            </tr>
        </thead>
        <tbody id="people">
            <tr>
                <td>Raja</td>
                <td>Dey</td>
                <td>18</td>
            </tr>
            <tr>
                <td>Mamata</td>
                <td>Sharma</td>
                <td>20</td>
            </tr>
            <tr>
                <td>Avijit</td>
                <td>Sharma</td>
                <td>21</td>
            </tr>
            <tr>
                <td>Sharanya</td>
                <td>Dutta</td>
                <td>26</td>
            </tr>
            <tr>
                <td>Nabin</td>
                <td>Roy</td>
                <td>27</td>
            </tr>
        </tbody>
    </table>
</body>

</html>

اگه جا نزنی، هنوزم یه شانس دیگه داری...

لینک اول رو دیدم اما چیزی نیست که من میخوام

من میخوام بدون کلیک بر روی سر ستون ها، در ستون دوم به صورت خودکار اعداد از کوچکتر به بزرگتر مرتب شده باشند و کلیک بر روی سرستون ها غیر فعال باشه!!!

سلام به شما Itpro ای عزیز.

به جای این که عمل سورت کردن رو در رویداد کلیک بذارید می تونید یک timout تعریف کنید که هر چند میلی ثانیه یک بار عمل سورت کردن انجام بشه نحوه نوشتن این دستور به شکل زیر است

setTimeout(function(){ sort(); }, 3000);

دستور بالا هر 3 ثانیه یک بار عمل سورت و مرتب سازی را انجام میدهد.

سرنوشت ما با افکارمان تغییر می کند؛ اگر افکارمان همیشه مطابق با خواسته هایمان باشند، همان چیزی می شویم که آرزو داریم و همان کاری را می کنیم که می خواهیم
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....