Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2019, 22:01
Новичок на форуме
Отправить личное сообщение для Nikandro Посмотреть профиль Найти все сообщения от Nikandro
 
Регистрация: 15.05.2019
Сообщений: 4

Создание строк и столбцов JS при клике
В джсе новичек.

есть таблица с N количеством строк и есть соответственно столбцы.
Нужно , что бы при каждом клике добавлялся один столбец с нужным количеством строк.

У меня получается создать только 1 блок
https://codepen.io/Nikapalitis/pen/zQZqyo
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2019, 22:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Nikandro,
http://javascript.ru/forum/showthrea...482#post413482
Ответить с цитированием
  #3 (permalink)  
Старый 15.05.2019, 22:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Nikandro
Нужно , что бы при каждом клике добавлялся один столбец с нужным количеством строк.
цикл по всем строкам appendChild
Ответить с цитированием
  #4 (permalink)  
Старый 15.05.2019, 22:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Nikandro,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodePen - A Pen by  Niksan</title>
<style>
            *{
        padding: 0;
        margin: 0;
        box-sizing: border-box;
}

.main{
        background: rgb(224, 224, 224);
        width: 100%;
        display: flex;
}

.sidebar{
        width: 15%;
        height: 900px;
        background-color: rgb(180, 180, 180);
}

.h1{
        font-size: 1.5em;
        padding: 5px;
        padding-left: 15px;
}

.info{
        background: rgb(255, 223, 211);
        padding: 5px;
        padding-left: 15px;
}

.table-knopki{
        width: 100%;
        height: 50px;
        background: aliceblue;
        display: flex;
}
.tab-text{
        font-size: 2em;
        font-weight: bold;
        padding: 5px;
        margin-left: 20px;
        padding-right: 200px;
}

.tab{
        width: 100%;
        margin-top: 60px;
        margin-left: 30px;
}

button{
        padding: 5px;
        border: 0;
        color: azure;
        font-weight: bold;
        margin: 5px;
}


th,td{
        border: 1px solid black;
        text-align: center;
        width: 30px;
        height: 30px;
        padding: 15px;
}

.first-n{
        width: 200px;
        height: 30px;
        border: 1px solid black;
        background: rgb(168, 167, 167);
}

.knopka {
    background: orangered;
}

        </style>

</head>
<body translate="no">
<div class="tab">
<div class="table-knopki">
<p class="tab-text"> Table</p>
<button class="knopka green" onclick="add()">Add day</button>
<button class="knopka red" onclick="remove()">Remove Day</button>
<button class="knopka blue">Update Table</button>
</div>
<table>
<tr id="myTD">
<td class="first-n"></td>
<td>Average</td>
</tr>
<tr>
<td>Student 1</td>
<td>3.0</td>
</tr>
<tr>
<td>Student 2</td>
<td>3.0</td>
</tr>
<tr>
<td>Student 3</td>
<td>3.0</td>
</tr>
</table>
</div>
<script>
function add() {
    var para = document.createElement("TD");
    [...document.querySelectorAll("tr")].forEach(tr => tr.append(para.cloneNode()))
};

function remove() {
    [...document.querySelectorAll("tr td:last-child")].forEach(td => td.remove());
}
        </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 16.05.2019, 17:56
Новичок на форуме
Отправить личное сообщение для Nikandro Посмотреть профиль Найти все сообщения от Nikandro
 
Регистрация: 15.05.2019
Сообщений: 4

Большое спасибо
Сообщение от рони Посмотреть сообщение
Nikandro,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodePen - A Pen by  Niksan</title>
<style>
            *{
        padding: 0;
        margin: 0;
        box-sizing: border-box;
}

.main{
        background: rgb(224, 224, 224);
        width: 100%;
        display: flex;
}

.sidebar{
        width: 15%;
        height: 900px;
        background-color: rgb(180, 180, 180);
}

.h1{
        font-size: 1.5em;
        padding: 5px;
        padding-left: 15px;
}

.info{
        background: rgb(255, 223, 211);
        padding: 5px;
        padding-left: 15px;
}

.table-knopki{
        width: 100%;
        height: 50px;
        background: aliceblue;
        display: flex;
}
.tab-text{
        font-size: 2em;
        font-weight: bold;
        padding: 5px;
        margin-left: 20px;
        padding-right: 200px;
}

.tab{
        width: 100%;
        margin-top: 60px;
        margin-left: 30px;
}

button{
        padding: 5px;
        border: 0;
        color: azure;
        font-weight: bold;
        margin: 5px;
}


th,td{
        border: 1px solid black;
        text-align: center;
        width: 30px;
        height: 30px;
        padding: 15px;
}

.first-n{
        width: 200px;
        height: 30px;
        border: 1px solid black;
        background: rgb(168, 167, 167);
}

.knopka {
    background: orangered;
}

        </style>

</head>
<body translate="no">
<div class="tab">
<div class="table-knopki">
<p class="tab-text"> Table</p>
<button class="knopka green" onclick="add()">Add day</button>
<button class="knopka red" onclick="remove()">Remove Day</button>
<button class="knopka blue">Update Table</button>
</div>
<table>
<tr id="myTD">
<td class="first-n"></td>
<td>Average</td>
</tr>
<tr>
<td>Student 1</td>
<td>3.0</td>
</tr>
<tr>
<td>Student 2</td>
<td>3.0</td>
</tr>
<tr>
<td>Student 3</td>
<td>3.0</td>
</tr>
</table>
</div>
<script>
function add() {
    var para = document.createElement("TD");
    [...document.querySelectorAll("tr")].forEach(tr => tr.append(para.cloneNode()))
};

function remove() {
    [...document.querySelectorAll("tr td:last-child")].forEach(td => td.remove());
}
        </script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 16.05.2019, 20:08
Новичок на форуме
Отправить личное сообщение для Nikandro Посмотреть профиль Найти все сообщения от Nikandro
 
Регистрация: 15.05.2019
Сообщений: 4

рони
В вашей статье , что вы кинули там аджакс и у меня глаза разбегаются (не понимаю)
Сейчас я добавил в ячейки input, но как сделать так , что бы при клике добавлялись и ячейки ввода input тоже , а не пустые td / tr.

пытался сделать по вашему методу , но так не работает
Код:
function add() {
    var para = document.createElement("TD");
    [...document.querySelectorAll("tr")].forEach(tr => tr.append(para.cloneNode()))
    var a = document.createElement("INPUT");
    [...document.querySelectorAll("input")].forEach(input => input.append(a.cloneNode))
};
Ответить с цитированием
  #7 (permalink)  
Старый 16.05.2019, 20:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Nikandro,
function add() {
    var para = document.createElement("TD");
    var a = document.createElement("INPUT");
    para.append(a);
    [...document.querySelectorAll("tr")].forEach(tr => tr.append(para.cloneNode(true)))
};
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Подмена картинки при клике ameganix Элементы интерфейса 2 09.10.2014 19:57
Fancybox при клике на метку Яндекс.Карт не работает с параметрами imax57 jQuery 0 04.10.2014 09:18
скрыть открыть тот или иной блок при клике на ссылке ufaclub jQuery 9 26.08.2014 00:14
При клике на ссылку ничего не происходит gurg0n Элементы интерфейса 2 24.06.2013 11:11