2013-06-05 2 views
1

Я использую jQuery для изменения класса в некоторых элементах таблицы.Подстановочный знак N-го типа в jQuery?

Ожидаемое поведение, когда вы нажимаете <th>, добавьте класс во все свои <td> (в его колонке).

У меня есть этот JQuery:

$(document).ready(function() { 
    $("table.tabla th:nth-of-type(1)").click(function() { 
     $("table.tabla td:nth-of-type(1)").toggleClass('on'); 
    return false; 
    }); 
}); 

Это правильно работает в this jsFiddle с первым собратом.

Ну, я хочу сделать то же самое со всеми <th>, но я не знаю, сколько <th> в таблице (это динамическая таблица.)

Есть ли способ сделать что-то вроде th:nth-of-type(x)?

+0

Я не знаю, является ли «подстановочный знак N-го типа» правильной формой для его выражения ... если не пожалуйста, скажите мне. (Я не английский) – Arkana

ответ

3

Вы можете попробовать JQuery " .on "для динамического ob ject, вам также нужно будет искать текущий th с объектом $ (this) и искать его дочерние td для переключения своего класса на «on».

$(document).ready(function() { 
     $("table.tabla th").on("click", function() { 
      ind = $(this).index()+1; 
      $('td:nth-of-type(' + ind + ')').toggleClass('on'); 
     }); 
    }); 
+2

Это неправильный ответ, здесь вы ищете td под нажатой кнопкой th. но пользователь хочет переключить класс на td ниже щелчка th, это означает td с тем же индексом, что и th. –

+0

Вы правы, я сейчас отредактировал ответ. Спасибо, что указали это. – awavi

+0

добро пожаловать. –

3

Попробуйте использовать индекс(), как это:

$("table.tabla th").click(function() { 
    $("table.tabla td:nth-of-type("+($(this).index()+1)+")").toggleClass('on'); 
    return false; 
}); 

jsFiddle example

+0

Большое спасибо! Как я уже сказал, я выберу ответ @ awavi за его полезное объяснение, но это также работает. – Arkana

1

Это будет работать:

$(document).ready(function() { 
$("table.tabla th").click(function() { 
    var x = parseInt($(this).index()) + 1; 
    $("table.tabla td:nth-of-type(" + x + ")").toggleClass('on'); 
return false; 
}); 
}); 

Демо: http://jsfiddle.net/tymeJV/3HzLf/3/

+0

+1 Спасибо, это тоже работает. Я выберу ответ @ awavi для объяснения, спасибо вам все равно :) – Arkana

1

Я установил это работает, используя index метод th щелкнули элемента идентифицировал по this внутри функции мышей (индекс возврат нулевого значения на основе)

Код:

$("table.tabla th").click(function() { 
    $("table.tabla td:nth-of-type("+($(this).index()+1)+")").toggleClass('on'); 
    return false; 
}); 

Вот a скрипка: http://jsfiddle.net/IrvinDominin/eBzYm/

+0

Ваш jsFiddle не обновляется ... все еще с моим кодом;) Во всяком случае, я пытаюсь заменить свой JS вашим, и ничего не происходит, когда я нажимаю ... – Arkana

+1

!! Моя плохая, была другая версия, обновила основную версию с рабочим кодом –

Смежные вопросы