У меня есть таблица с количеством записей, где один из столбцов имеет выпадающий список. Основываясь на значении в одном из столбцов, параметры/значения в элементе необходимо удалить. Я могу это сделать, но изменения применяются к первому набору записей, которые отображаются на экране. Остальные записи на других страницах таблицы не затрагиваются. Первоначально я использовал следующий синтаксис для доступа к данным таблицыПрименить изменения во всех скрытых строках в datatable
$('table tr').each(function(){...});
Поскольку приведенный выше код не извлечению скрытых строк, я использовал fnGetNodes()
, чтобы получить доступ к всем строкам. Ниже приведен полный код доступа и изменения содержимого.
var rows=oTable.fnGetNodes();
for(var i=0;i<rows.length;i++){
var index=5;
var grade=$(rows[i]).find('td').eq(index).text();
var desc=$(rows[i]).find('td').eq(index+1).text();
console.log('Grade - '+grade);
console.log('Desc - '+desc);
index=13;
var selID=$(rows[i]).find('td').eq(index).find('select').attr('id');
if(grade.match('Used')){
$("select#"+selID).attr('disabled', true);
$("select#"+selID).css("background-color","#eeeeee");
}
else if(desc.match('ALT$') || desc.match('MTM$'))
{
$("#"+selID+" option[value='Option one']").remove();
}
}
Я могу напечатать идентификатор элемента select, но не смог его изменить. Он снова работает для первого набора записей, отображаемых на экране, а не для скрытых. Не могли бы вы сообщить мне, что мне не хватает?
подход все неправильно. Существует гораздо больше под капотом плагина, чем просто html. Он кэширует данные и html внутри. Обновите данные, которые отображают выбор через данные api ... затем выполните перерисовать – charlietfl
@charlietfl, я новичок в jQuery. Не могли бы вы рассказать мне, как использовать данные api? Я использую Struts, который загружает данные в datatable. – Anand
загружает его как? как html, представленный на странице или json, передан плагину? – charlietfl