• Как сделать Расположение элемента всегда в том же месте?

    Позицианировать через absolute. Выпадающее меню и кнопку вызывающую это меню поместить внутрь одного блока.
    Вам необходимо все унифицировать. У вас много дублирования кода.
    Каждой кнопке клик на которую изменяет стиль текста можно добавить класс js-control и добавить data-атрибуты
    data-property - название свойства которое будет меняться и data-value - значение которое будет подставляться.
    Т.е. вы находите все элементы с классом js-control, вешаете на них один обработчик клика, после клика определяется свойство которое должно меняться (property = data-propety) и значение которое необходимо поменять (value = data-value) и применить их
    textContent.style[property] = value;
    Ответ написан
    Комментировать
  • Как создавать таблицу через dom js?

    Alixx
    @Alixx
    Вы в tr() и td() каждый раз создаёте новую таблицу, а не строку/столбец.

    function tr(){
    texta.value += '<table><tbody>'; // Один раз создаёте таблицу
        for(let i = 0; i<table1.value;i++){
    	texta.value += '<tr>';
        td(); /* Вызов td() должен быть тут, внутри строки, и нигде больше */
      texta.value += '</tr>';
        
    //    texta.value += `<table><tbody><tr><td style = "width:${table4.value}px;height:${table3.value}px;border:${table5.value}px ${tableselect.value} ${colorselect.value}"</td></tr>`
        }
    }
    
    function td(){
        for(let i = 0; i<table2.value;i++){
        texta.value += '<td style = "width:${table4.value}px;height:${table3.value}px;border:${table5.value}px ${tableselect.value} ${colorselect.value}"</td>';
      
     //       texta.value +=  `<table><tbody><tr><td style = "width:${table4.value}px;height:${table3.value}px;border:${table5.value}px ${tableselect.value} ${colorselect.value}"</td></tr>`
    
        }
    }
    Ответ написан
    1 комментарий
  • Как получить доступ к элементу которого я создал в javascript?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    1. Не setAttribute("class", "buttonDelete"); а classList.add("buttonDelete");
    2. Вставлять элемент в документ (tr.appendChild(button2)) нужно в самую последнюю очередь, то есть после изменения содержимого button2.innerHTML = 'Delete');
    3. У вас проблема в том, что в buttonDelete хранится список всех кнопок которые были на момент вызова querySelector. Это не динамическая величина. Вызвали querySelector, он вернул все кнопки которые были на странице в данный момент. Логично, что новые кнопки в этой выборке отсутствуют. Чтобы решить проблему вам нужно:
      1. Вынести всю логику для удаления в отдельную функцию, назовём её removeCallback.
      2. Добавлять слушателя событий отдельно для каждой кнопки в момент её создания:
        button2.addEventListener('click', removeCallback)
        tr.appendChild(button2)



    Ответ написан
    1 комментарий
  • Почему елемент занимает ширину больше чем другой если я не указывал значение?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    В таблицах ширина колонок настраивается автоматически в зависимости от контента.
    Т.е. если в одной ячейке слово "привет", а в другой "синхрофазатрон" - то привет явно короче, значит и колонка с ним будет уже.

    Чтобы избежать автоматической настройки, указывайте ширину колонок вручную (в пикселях или в процентах).
    Ответ написан
    6 комментариев