Как добавить HTML-теги каждые три строки таблицы, которая динамически генерируется с помощью Jquery - PullRequest
0 голосов
/ 01 июля 2011

Есть ли способ использовать Jquery для вставки тегов '' после каждых трех динамически генерируемых ячеек таблицы, чтобы в итоге получилась динамическая таблица из трех столбцов?

Пожалуйста, извините за недостаток знаний, я буквально пытаюсь написать свой первый скрипт jquery, поэтому я абсолютно ничего не знаю.Я знаю php, и у меня есть таблица, в которой есть цикл, который динамически создает <td></td> с информацией внутри каждого тега.Другими словами, он динамически создает ячейки таблицы в статическом теге <tr></tr>.Проблема в том, что он продолжает выводить таблицы, не разбивая их на строки, что оставляет мне кучу столбцов.Я читал другие статьи на эту тему, но, похоже, ни у одной из них нет такой же проблемы, как у меня, и я все еще пытаюсь понять, как писать собственный код Jquery.

PHP-код очень длинный и полон многочисленных операторов if и других функций, поэтому я не собираюсь публиковать его здесь, а просто чтобы сделать его немного проще, я сделал миниатюрный макет того, что япытаюсь это сделать.

            <table id="mytable" width="266" border="1" cellspacing="10" cellpadding="10">
              <tr>
            <?php
            $x=0;
            while (have_products($x)) {
                echo '<td>' . somelongassfunction() . '</td>';
                $x++;
            if (fmod($x,3) == 0) {
                echo '</tr><tr>';
                continue;
                }
            if ($x==20){
                echo '</tr>';
                }   
            }
            function somelongassfunction(){
                return 'Hello';
                }
            function have_products($a){
                return $a<=20;
                }   
            ?>

            </table>

Этот код зацикливается и динамически добавляет ячейки таблицы до установленного мной предела, который будет представлять элементы моей базы данных.Каждые три строки добавляет либо <tr></tr>, либо просто </tr> в зависимости от того, продолжается цикл или нет.Это создает таблицу из 3 столбцов.Я не могу применить этот код для моего скрипта, потому что это очень длинный и сложный скрипт, который содержит много операторов if и функций.Нет способа сделать это без нарушения кода или необходимости переписывать все заново.

Могу ли я в любом случае динамически добавлять теги tr с помощью Jquery, и как мне применить это к?

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Вы можете использовать селектор для выбора каждой третьей строки:

$('#table_id > tr:nth-child(3n)').whatever_function()

Однако, если вы пытаетесь добавить теги end / tr, попробуйте сделать это в PHP, используя счетчик, который сбрасывает себя (этот код долженНачало работы):

echo "<tr>";
$x = 0;
$y = 0;
while (have_products($x)) {
    echo '<td>' . somelongassfunction() . '</td>';
    $y++;
    if ($y == 3) {
        $y = 0;
        echo "</tr><tr>";
    }
    $x++;
}
echo "</tr>";
0 голосов
/ 01 июля 2011

Подход jQuery будет заключаться в циклическом просмотре всех вкладок и добавлении их во вновь созданные теги, которые сами добавляются в HTML таблицы.Примерно:

var thisCount=0;
var currenttag="<tr />";
var table=$("table");
$("td").each(function () 
{
    if(thiscount==2)
        {
             table.appendChild(currenttag);
             thisCount=0;
             currenttag="<tr />";
        }
     currenttag.appendChild(this);
}

(это просто для того, чтобы дать идею, а не как официальный ответ JQ. Если кто-то хочет отредактировать его, чтобы он работал полностью, не стесняйтесь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...