Выборка в таблице 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, время: 03:00. |