Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2016, 13:15
Интересующийся
Отправить личное сообщение для MrSmitt Посмотреть профиль Найти все сообщения от MrSmitt
 
Регистрация: 28.07.2016
Сообщений: 16

Заполнение таблицы
Строится некоторая таблица. Необходимо при нажатии на ячейку таблицы (там где нули) изменить числовое значение.
В дальнейшем введённые значения понадобятся для построения графика, поэтому не знаю обязателен ли jQuery
Код:
<body>
   <form name="forma">
    <p>Кол-во колонок:
    <input type="number" id="cols" value="3">
    </p>
    <input type="submit" value="Подтвердить">			
   </form>
<output></output>
</body>
$(function(){ 
 (function($) {
    var opts = {
        row: 2,
        col: 2,
        add: 'html'
    };
    var methods = {
        init: function(o) {
            var table = $('<table />');
            opts = $.extend(opts, o);
            if (opts.row <= 0 || opts.col <= 0) {
                return false;
            }
           for (var i = 0; i < opts.row; i++) {
                table.append(methods.makeRow(i));
            }
            this[opts.add](table);
        },
        makeRow: function(i) {
            var L = methods.letter(i);
            return $('<tr />', {
                    html: $('<td />').duplicate(opts.cols )
                }).duplicate(2)
                .first()
                .find('td').each(function(i, el) {
                    $(el).html(L + '<sub>' + i + '</sub>');
                })
                .end()
                .prepend($('<td />', {
                    attr: {
                        rowspan: 2
                    },
                    text: L
                })).end();
        },
        letter: function(i) {
            var start = 88;
            return String.fromCharCode(i > start ? start : start + i);
        }
    };
    $.fn.duplicate = function(count) {
        var tmp = [];
        for (var i = 0; i < count; i++) {
            if (this[0].tagName === 'TD') {
                this.text(0);
            }
            $.merge(tmp, this.clone().get());
        }
        return this.pushStack(tmp);
    };
    $.fn.generateTable = function(o) {
        return methods.init.apply(this, arguments);
    };
}(jQuery));		
$('form').on('submit', function(e) {
    e.preventDefault();
    $('output').generateTable({
        cols: $('#cols', this).val(),
        add: 'html' 
    });
 });
});
Ответить с цитированием