Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Динамически создаю таблицу (https://javascript.ru/forum/jquery/62379-dinamicheski-sozdayu-tablicu.html)

failoflife 07.04.2016 17:47

Динамически создаю таблицу
 
<table class="table-editor">
                        <tbody>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,3"></td>
                        </tr>
                        </tbody>
                    </table>


<input id="addcol" type="button" value="Add Column" />
<input id="remcol" type="button" value="Reomve Column" />
<input id="addrow" type="button" value="Add row" />
<input id="remrow" type="button" value="Remove row" />


$('#addcol').click(function() {
    var $tablerow = $('table.table-editor').find('tr');
    count = 0;

    $tablerow.each(function(index, value){
        count += 1;
        var $listitem = $(this);
        n = parseInt($listitem.index());
        var $input = $('<input>', {
        type: 'text',
        maxlength: '2',
        placeholder: 'a'
    });
        var $newRow = $("<td>");
        $("table.table-editor tr:eq(" + n + ")").append($newRow.append($input));
        $("input:text").attr("size", "2");
    });
});

$('#remcol').click(function() {
    var $tablerow = $('table.table-editor').find('tr');
    
    $tablerow.each(function(index, value){
        $("table.table-editor tr:eq("+index+") td:eq(-1)").remove();
    });
});

$('#addrow').click(function() {
    
    var $input = $('<input>', {
        type: 'text',
        maxlength: '2',
        placeholder: 'a'
    });
    var $newRow = $("<td/>");
    $('table.table-editor').append("<tr></tr>");
    $('table.table-editor tr:eq(0) td').each(function(index, value){
        $("table.table-editor tr:eq(-1)").append($input.append($input));
        $("input:text").attr("size", "2");
    });
});

$('#remrow').click(function() {
    $('table.table-editor tr:eq(-1)').remove();
});


1. Некорректно работает добавление строк. Как это исправить?
2. Хочу, чтоб при добавлении новых ячеек в placeholder писалось а(номер столбца),(номер строки)

рони 07.04.2016 18:53

Добавление строк и столбцов в таблицу
 
failoflife,
:-?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
</style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
$(function() {
    var table = $(".table-editor");
    $("#remcol").click(function() {
        $("tr td:last-child", table).remove()
    });
    $("#addcol").click(function() {
        $("tr", table).append(function(i) {
            var num = "a" + (i + 1) + "," + ($("td", this).length + 1);
            return $("<td>").append($("<input/>", {
                attr: {
                    size: "2",
                    maxlength: "2",
                    placeholder: num
                }
            }))
        })
    });
    $("#remrow").click(function() {
        $("tr:last-child", table).remove()
    });
    $("#addrow").click(function() {
        var clone = $("tbody tr:last-child", table), first = !clone.length;
        clone = first ?  $("<tr/>", {"class" : "normal-row"}) : clone.clone();
        clone.appendTo(table);
        first && $("#addcol").trigger("click");
        var num = "a" + (clone.index() + 1) +
            ",";
        $("input", clone).each(function(indx, input) {
            $(input).attr({
                placeholder: num + ++indx
            })
        })
    })
});
  </script>
</head>

<body>
<table class="table-editor">
                        <tbody>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a1,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a2,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a3,3"></td>
                        </tr>
                        <tr class="normal-row">
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,1"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,2"></td>
                            <td><input type="text" size="2" maxlength="2" placeholder="a4,3"></td>
                        </tr>
                        </tbody>
                    </table>


<input id="addcol" type="button" value="Add Column" />
<input id="remcol" type="button" value="Remove Column" />
<input id="addrow" type="button" value="Add row" />
<input id="remrow" type="button" value="Remove row" />

</body>
</html>


Часовой пояс GMT +3, время: 11:51.