Скрыть столбец таблицы с помощью jQuery - PullRequest
4 голосов
/ 02 января 2012

Это спрашивали много раз, я знаю, но это другое! Я сделал это:

enter image description here

Когда вы нажимаете на значок минуса, столбец должен исчезнуть, это работает с php, но код беспорядок, и я хотел бы, чтобы это работало с jQuery, я нашел несколько других потоков, которые показывали мне это: *

$("#minus").click(function() {
    $("#table td:nth-child(2),th:nth-child(2)").hide();
});

Через некоторое время я придумал это:

var num = $("#columnid").index();    
$("#table td:nth-child("+ num +"),th:nth-child("+ num +")").hide();

Это вроде сработало, но мне нужно вызвать его с помощью функции onclick="jquery_function();" и позволить php вставлять id каждого заголовка, но возможно ли это? Или какой другой способ сделать это? я застрял!

Это сделал это:

$(".minus").click(function() {
    var num = $(this).parent().index() + 1;
    $("#table td:nth-child("+ num +"),th:nth-child("+ num +")").fadeOut(250);
});

Кажется простым после выяснения, Йерун понял это правильно. :) Единственное, чего я не понимаю, - зачем вам ("th"), работает с и без. Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 января 2012

Кажется, вы почти закончили.Что вы можете сделать, это обернуть его в функцию и прикрепить обработчик события к кнопке в ячейке заголовка таблицы:

$("th .button").click(function(){
  var num = $(this).parents("th").index();    // untested, but something like this should do it
  $("#table td:nth-child("+ num +"),th:nth-child("+ num +")").hide();
  return false;
}
0 голосов
/ 02 января 2012

Как насчет этого?

// note the class for multiple minus
$(".minus").click(function () {
  var $this = $(this);
  var index = $('.minus').index($this); // get the zero based index of this element
  index++; // adjust for zero based index
  var selector = '#table td:nth-child(' + index + '), the:nth-child(' + index + ')';
  $(selector).hide();
});

Не проверено, и не стесняйтесь опускать код по своему усмотрению.

...