2013-03-05 2 views
0

У меня есть таблица с таблицами - таблица HTML.Как удалить последний столбец таблицы html с разными столбцами

Большинство строк имеют 3 столбца, но некоторые могут иметь только 1 или 2. В этом случае я использую colspan и растягиваю его по другим столбцам.

Что я хочу сделать: Когда пользователь нажимает кнопку на странице, я хочу удалить последний столбец (свернуть), ТОЛЬКО, если он содержит более одного столбца.

Как это возможно с jquery (если это можно сделать)?

+0

Вы можете поделиться тем, что попробовали? – supersaiyan

ответ

0

Вы можете сделать это, но вы должны также добавить класс к столу, так что вы можете выбрать таблицу, которую классом ,

if($('tr').length > 1) { 
    $('tr').each(function(){ 
     $("td:last").hide() 
    }) 
} 

Если добавить, например, класс MYTABLE, сделайте следующее:

if($('.myTable tr').length > 1) { 
    $('.myTable tr').each(function(){ 
     $(".myTable tr td:last").hide() 
    }) 
} 
+0

Тот же код в одной строке '$ (". MyTable tr td: last "). Hide()' – artnikpro

1

попробовать что-то вроде этого

$('tr').each(function(){ 
    $("td:last").hide() 
}) 
0

попробовать это

$('tr').each(function(){ 
    $("td:last").hide(); 
}) 
+0

Я не уверен, но я думаю, что ваш метод удалит даже столбец, который является единственным в строке ... Правильно ли? – itsols

0

Я думаю, что вы должны жить сохранить количество столбцов (Colspan) в строке перед удалением последней колонки для того, чтобы сделать таблицу отзывчивой.

Написал немного функции. Не пытались в действии

<button onclick="removeLatestCol()"></button> 

<script> 
function removeLatestCol() { 
    var latest_row = $("table tr:last"); 
    var cols = $("td", latest_row); 

    if (cols.length == 1) { 
     latest_row.remove(); 
     return; 
    } 

    var latest_col = cols.filter(":last"); 
    latest_col.prev().attr("colspan", (latest_col.prev().attr("colspan") || 1) + (latest_col.attr("colspan") || 1)); 
    latest_col.remove() 
} 
</script> 
Смежные вопросы