Выборка в таблице Jquery
Вложений: 1
Здравствуйте. Пытаюсь работать с DOM, создаю таблицу и поля из массива txt (результат на картинке):
txt = new Array; //Массив данных txt[ 0 ] = new Array( "1", "Chaplin", "10:40", "Драма", "ПН" ); txt[ 1 ] = new Array( "2", "A Man In Uniform", "11:20","Драма", "СР" ) var Table=document.createElement("table"); //и т.д Пытаюсь проитись по элементам таблицы и сделать выборку: var films=$("#films option:selected").html();//получаю какой фильм я выбрал Как мне теперь с помощью Jquery сделать выборку из этой таблицы по полученному мною фильму(var films)? |
Это вместо твоего говнокода
var films = [ ["1", "Chaplin", "10:40", "Драма", "ПН"], ["2", "A Man In Uniform", "11:20","Драма", "СР"] ]; Имена переменных как правило пишут с маленькой буквы (касательно Table) Не понимаю что за выборка? Зачем тебе колупаться в DOM'е, когда у тебя есть массив txt со всеми данными? Обращайся к нужной "записи" по индексу: var selectedFilm = $('#films').get(0).selectedIndex; var record = txt[selectedFilm]; Если selectedIndex не соответствует номеру записи, то можно для связывания использовать свойство value или кастомный data-атрибут |
danik.js, поправки учел. Мне нужно сделать фильтрацию в таблице по выбранному полю из выпадающего списка с помощью jquery. Т.е после выбора в таблице должна остаться только одна строка с этим фильмом. Все равно не получается, как это сделать с jquery?
|
Просто подскажите пожалуйста как мне пройтись по ячейкам таблицы с помщью .each() и сравнить их с моим выбором из списка?
var films=$("#films option:selected").html();//получаю какой фильм я выбрал |
Вариант 1:
var $rows = $(table).find('tbody tr'); $rows.hide().eq(selectedFilm).show(); Вариант 2: var rows = table.tBodies[0].rows; $(rows).each(function(index) { $(this).toggle(index == selectedFilm); }); |
danik.js, к сожалению не работает(( Вот пытаюсь вывести ту строку алертом:
var rows = table.tBodies[0].rows; $(rows).each(function(index) { $(this).toggle(index == selectedFilm); alert($(this)); }); Так не получается, зато посчитать количество элементов получилось: $(document).ready(function() { alert($('#table_canal tbody tr').length + ' elements!'); Как мне переделать отсюда чтобы ваш код привиденный выше заработал? мне хотя бы получить номер строки в таблице с фильмом:) |
Пробуй так:
var $rows = $('#table_canal tbody tr'); $rows.hide().eq(2).show(); Должны исчезнуть все строки кроме третьей. Если сработает - далее просто вместо двойки выводи выбранный индекс из селекта. |
Цитата:
<select name="region_id" id="region_id" onChange="sortFilm()" disabled="disabled" > </select> и функцию: function sortFilm() { $(document).ready(function() { var $rows = $('#table_canal tbody tr'); $rows.hide().eq(2).show(); }); } Абсолютно ничего не происходит, можно ли как нибудь попроще(пошагово) перебрать элементы циклом, чтобы я мог их алертом выводить? дабы понять работает или нет... |
console.log() на что по-твоему? Точки останова на что?
|
danik.js, в консоли пишет:
TypeError: $(...).get(...) is undefined var selectedFilm = $('#films').get(0).selectedIndex;Что это может быть? |
Часовой пояс GMT +3, время: 20:08. |