Выборка в таблице Jquery

Здравствуйте. Пытаюсь работать с 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)?
9 ответов

Это вместо твоего говнокода
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();
Должны исчезнуть все строки кроме третьей. Если сработает - далее просто вместо двойки выводи выбранный индекс из селекта.


Пробуй так:
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;
Что это может быть?