Я хочу покрасить все элементы, разделяющие те же 3 значения данных, что и выбранный элемент, с помощью окна выбора. Он работает только с первым выбором, но не с одновременными. В моей петле for консоль не показывает, что я ожидаю от нее? Я должен упустить что-то, что привыкло к самому JQuery.Выделите элементы таблицы с полем выбора - JQuery
Вот JS:
function setColor(){
$('input').on('click', function(){
var src, // packet source
dst,
proto;//
var $selectedRow = $("tr[class='selectedrow']"); // get selected row
color = $(this).val(); // grab selected color from radio button
console.log(color);
$tdelements = $selectedRow.children(); //get td elements of selected row
src = $tdelements.eq(2).text(); // grab source
dst = $tdelements.eq(3).text(); // grab destination
proto = $tdelements.eq(4).text(); // grab protocol
var $tr = $('tr'); // grab entire <tr> of document.
console.log($tr.eq(0).children());
// loop through individual <tr> elements and compare fields with the filter.
for(var i=0; i < $tr.length; i++){
$tdelements = $tr.eq(i).children(); // grab elements of the ith tr element
console.log($tdelements.eq(i));
if($tdelements.eq(2).text() === src && $tdelements.eq(3).text() === dst && $tdelements.eq(4).text() === proto){
$tr.eq(i).removeClass(color);
$tr.eq(i).addClass(color);
}
}
});
}
// Dom Ready
$(document).ready(function(){
$('tbody').on('click', 'tr', function(){
$('tr').removeClass('selectedrow');
$(this).addClass('selectedrow') ;
});
setColor();
});
Вот скрипку: https://jsfiddle.net/senpaifiddler/ztd1Ltux/
Я полагаю, что сначала нужно удалить "цвет" класс правильно. Посмотрите https://jsfiddle.net/sL0uLuvb/. И второе - вы определяете var 'color' как значение переключателя, тогда вы делаете это:' $ tr.eq (i) .removeClass (color); 'но этот' tr' может иметь другой цвет, который отличается от выбранных кнопок цвет. – Banzay
Я не хочу, чтобы цвет удалялся, когда пользователь нажимает на таблицу. Я хочу, чтобы текущий цвет менялся, когда я выбираю другой цвет из коробки. Это, по сути, проблема. – IskandarG