Adicionar colunas ordenáveis às suas tabelas permite que os leitores reordenem o conteúdo da tabela clicando em qualquer cabeçalho de coluna. Clicar em um cabeçalho uma vez ordena ascendente (▴); clicar novamente ordena descendente (▾). A implementação requer duas adições às suas configurações de CSS & JavaScript personalizadas: um snippet de CSS que estiliza os indicadores de ordenação e um snippet em JavaScript que gerencia a lógica de ordenação.
Quando usar tabelas ordenáveis
- Tabelas de referência com muitas linhas: a ordenação permite que os leitores encontrem rapidamente a entrada que procuram, em vez de escanear toda a tabela.
- Tabelas comparativas: os leitores podem ordenar por qualquer atributo (preço, nome, disponibilidade de recursos) para comparar opções em seus próprios termos.
- Artigos com muitos dados específicos: a ordenação reduz a necessidade de os leitores solicitarem uma versão filtrada ou reordenada dos dados.
Essa implementação se aplica a todas as tabelas do seu site da Base de Conhecimento. A ordenação é acionada pelo leitor clicando em qualquer cabeçalho de coluna. O ícone de ordenação no cabeçalho indica a direção atual — ascendente (▴) ou descendente (▾).
Como adicionar colunas ordenáveis às tabelas
Isso requer dois passos: adicionar o CSS para indicadores visuais e depois adicionar o JavaScript para a lógica de ordenação.
Adicionar o CSS
- No portal da Base de Conhecimento, acesse Configurações > site da Base de Conhecimento > CSS & JavaScript Personalizado.

- Selecione a aba CSS e cole o seguinte trecho:
table th {
cursor: pointer;
}
table .th-sort-asc::after {
content: "\25b4";
}
table .th-sort-desc::after {
content: "\25be";
}
table .th-sort-asc::after,
table .th-sort-desc::after {
margin-left: 5px;
}
table .th-sort-asc,
table .th-sort-desc {
background: rgba(0, 0, 0, 0.1);
}
- Clique em Salvar.

Adicionar o JavaScript
- Na mesma página de configurações personalizadas de CSS & JavaScript , selecione a aba JavaScript .
- Cole o seguinte trecho:
$( "table" ).addClass("table-sortable");
/**
* Sorts a HTML table.
*
* @param {HTMLTableElement} table The table to sort
* @param {number} column The index of the column to sort
* @param {boolean} asc Determines if the sorting will be in ascending
*/
function sortTableByColumn(table, column, asc = true) {
const dirModifier = asc ? 1 : -1;
const tBody = table.tBodies[0];
const rows = Array.from(tBody.querySelectorAll("tr"));
// Sort each row
const sortedRows = rows.sort((a, b) => {
const aColText = a.querySelector(`td:nth-child(${ column + 1 })`).textContent.trim();
const bColText = b.querySelector(`td:nth-child(${ column + 1 })`).textContent.trim();
return aColText > bColText ? (1 * dirModifier) : (-1 * dirModifier);
});
// Remove all existing TRs from the table
while (tBody.firstChild) {
tBody.removeChild(tBody.firstChild);
}
// Re-add the newly sorted rows
tBody.append(...sortedRows);
// Remember how the column is currently sorted
table.querySelectorAll("th").forEach(th => th.classList.remove("th-sort-asc", "th-sort-desc"));
table.querySelector(`th:nth-child(${ column + 1})`).classList.toggle("th-sort-asc", asc);
table.querySelector(`th:nth-child(${ column + 1})`).classList.toggle("th-sort-desc", !asc);
}
document.querySelectorAll(".table-sortable th").forEach(headerCell => {
headerCell.addEventListener("click", () => {
const tableElement = headerCell.parentElement.parentElement.parentElement;
const headerIndex = Array.prototype.indexOf.call(headerCell.parentElement.children, headerCell);
const currentIsAscending = headerCell.classList.contains("th-sort-asc");
sortTableByColumn(tableElement, headerIndex, !currentIsAscending);
});
});
- Clique em Salvar.

Desfecho
Após salvar ambos os trechos, todos os cabeçalhos das colunas da tabela no seu site da Base de Conhecimento tornam-se clicáveis. Clicar em um cabeçalho ordena as linhas da tabela por aquela coluna. Um indicador de direção de ordenação aparece no cabeçalho da coluna ativa.
