Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.09.2023, 18:30
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Узнать ширину ячеек таблицы
Здравствуйте
Есть таблица (с айди), в которой 4 ячейки в каждой строке
Подскажите, как можно узнать ширину каждой ячейки (в td айди нет)
(без jQuery)
ширину всей таблицы узнаю так:
document.body.onload = function() {
	tbl = document.getElementById('iItemTbl');	
	tbl = tbl.offsetWidth;
	document.getElementById("zzz").innerText = tbl;
}

Последний раз редактировалось sashgera, 28.09.2023 в 18:43.
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2023, 18:33
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Попробуйте как-то так:
document.addEventListener('DOMContentLoaded', function () {
   document.querySelectorAll('#iItemTbl td').forEach(function (node) {
       console.log(node, node.offsetWidth);
   });
});

Последний раз редактировалось Nexus, 28.09.2023 в 18:43.
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2023, 18:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,748

document.body.onload = function() {
    const tbl = document.getElementById('iItemTbl'); 
    const tblwidth = tbl.offsetWidth;
    const cellwidth = [];
    const cells = tbl.rows[0].cells;
    for (let i = 0; i < cells.length; i++) {
		cellwidth.push(cells[i].offsetWidth)
    }
    document.getElementById("zzz").innerText = tblwidth +' ' + cellwidth.join(',');
}


или короче
document.body.onload = function() {
    const tbl = document.getElementById('iItemTbl'); 
    const tblwidth = tbl.offsetWidth;
    const cells = tbl.tBodies[0].rows[0].cells;
    const cellwidth = Array.from(cells, (cell) => cells[i].offsetWidth);
    document.getElementById("zzz").innerText = tblwidth +' ' + cellwidth.join(',');
}

Последний раз редактировалось voraa, 28.09.2023 в 18:49.
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2023, 19:02
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

voraa, да, ширину ячеек получил, но все размеры ширины в одной переменной cellwidth, как можно сделать - четыре переменной с размерами для каждой ячейки
да, забыл написать, JS будет для гаджета windows 7, который использует IE8
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2023, 19:04
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

Nexus, к сожалению JS не выполняется, извините, но я забыл написать что нужно с поддержкой IE8 (для гаджета Windows 7)
Ответить с цитированием
  #6 (permalink)  
Старый 28.09.2023, 19:10
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

voraa, разобрался, cellwidth[0] cellwidth[1]... Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 28.09.2023, 19:19
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

voraa, еще вопрос, поможете? Как переменную с шириной ячейки применить к td, так не получается:
document.body.onload = function() {
     tbl = document.getElementById('iItemTbl'); 
     tblwidth = tbl.offsetWidth;
     cellwidth = [];
     cells = tbl.tBodies[0].rows[0].cells;
    for ( i = 0; i < cells.length; i++) {
		cellwidth.push(cells[i].offsetWidth)
    }
	tbl = cellwidth[2];
    document.getElementById("zzz").innerText =  tbl;
}


?????
<td style="width:'+tbl+'px;"></td>
Ответить с цитированием
  #8 (permalink)  
Старый 28.09.2023, 19:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,118

sashgera,
Свойство style
Ответить с цитированием
  #9 (permalink)  
Старый 28.09.2023, 20:58
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 140

рони, разобрался, спасибо!
document.getElementById('linksHeadings').rows[0].cells[0].style.width =  tbl;
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать ширину div SKLNSK jQuery 2 27.02.2015 13:48
Вопрос по ширине ячеек таблицы demoniqus Общие вопросы Javascript 4 02.02.2014 13:19
Узнать номер ряда у ячейки таблицы grego Events/DOM/Window 2 27.08.2013 20:07
IE 8: баг при динамическом display=none; у ячеек таблицы SegaMega Элементы интерфейса 0 21.09.2012 06:47
Узнать ширину div'а Kaba Events/DOM/Window 13 14.11.2011 00:10