MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) Отмена правки 52497, сделанной Pok (обсуждение) Метка: отмена |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 345: | Строка 345: | ||
// Проходим по каждой таблице | // Проходим по каждой таблице | ||
Array.prototype.forEach.call(tables, function(table) { | Array.prototype.forEach.call(tables, function(table) { | ||
var | var tbodies = table.querySelectorAll('tbody'); | ||
var thead = table.querySelector('thead'); | var thead = table.querySelector('thead'); | ||
var noHeader = table.classList.contains('no-header-table'); | var noHeader = table.classList.contains('no-header-table'); | ||
// | // Проходим по каждому <tbody> | ||
Array.prototype.forEach.call(tbodies, function(tbody) { | |||
// Получаем все строки <tr> внутри tbody | // Получаем все строки <tr>, исключая первый <tr> внутри каждого <tbody> | ||
var rows = Array.prototype.slice.call(tbody.querySelectorAll('tr')).filter(function(row) { | var rows = Array.prototype.slice.call(tbody.querySelectorAll('tr')).filter(function(row, index) { | ||
return !row.querySelector('table'); | // Исключаем строки с вложенными таблицами и первую строку <tr> | ||
return index > 0 && !row.querySelector('table'); | |||
}); | }); | ||
// Пропускаем первую строку, если нет thead и нет класса 'no-header' | // Пропускаем первую строку, если нет <thead> и нет класса 'no-header' | ||
var topLevelRows = (!thead && !noHeader) ? rows.slice(1) : rows; | var topLevelRows = (!thead && !noHeader) ? rows.slice(1) : rows; | ||
| Строка 362: | Строка 363: | ||
var hasTooManyRowspan = false; | var hasTooManyRowspan = false; | ||
// Проходим по строкам первого уровня | |||
topLevelRows.forEach(function(row) { | topLevelRows.forEach(function(row) { | ||
// Получаем все ячейки строки, исключая те, что имеют класс 'mobile' | // Получаем все ячейки строки, исключая те, что имеют класс 'mobile' | ||
var cells = Array.prototype.slice.call(row.querySelectorAll('td, th')).filter(function(cell) { | var cells = Array.prototype.slice.call(row.querySelectorAll('td, th')).filter(function(cell) { | ||
return !cell.classList.contains('mobile'); | |||
}); | }); | ||
var cellCount = cells.length; | var cellCount = cells.length; | ||
| Строка 439: | Строка 440: | ||
}); | }); | ||
}); | }); | ||
} | }); | ||
}); | }); | ||
} | } | ||