Показать сообщение отдельно
  #10 (permalink)  
Старый 08.06.2021, 14:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

таблица массив изменений
nastya97core,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
    <table>
        <tr>
            <td>id</td>
            <td>Стоимость</td>
            <td>Инфо</td>
            <td>Статус</td>
        </tr>
        <tr class="test">
            <td>a1</td>
            <td>123</td>
            <td><input type="text" value="перезвонить"></td>
            <td><select name="select">
                    <option value="value1" selected>В обработке</option>
                    <option value="value2">Завершен</option>
                    <option value="value3">Невозможен</option>
                </select></td>
        </tr>
        <tr class="test">
            <td>a2</td>
            <td>1413</td>
            <td><input type="text"></td>
            <td><select name="select">
                    <option value="value1">В обработке</option>
                    <option value="value2" selected>Завершен</option>
                    <option value="value3">Невозможен</option>
                </select></td>
        </tr>
        <tr class="test">
            <td>a3</td>
            <td>222</td>
            <td><input type="text"></td>
            <td><select name="select">
                    <option value="value1" selected>В обработке</option>
                    <option value="value2">Завершен</option>
                    <option value="value3">Невозможен</option>
                </select></td>
        </tr>
    </table>
    <button>Сохранить</button>
    <pre id="out"></pre>
    <script>
        const getData = _ => [...document.querySelectorAll('.test')].map(({ cells }) => {
            let [id, price, info, status] = [...cells].map(({
                textContent,
                children
            }) => children.length ? children[0].value : textContent);
            return {
                id,
                info,
                status
            }
        });
        let currentArr = getData();
        document.querySelector('button').addEventListener('click', _ => {
            let arr = getData();
            arr = arr.filter((obj, i) => {
                let el = currentArr[i],
                    test;
                ['info', 'status'].forEach(k => obj[k] === el[k] ? delete obj[k] : (test = true))
                return test
            })
            out.innerHTML = JSON.stringify(arr, "", 1)
        })
    </script>
</body>
</html>
Ответить с цитированием