Изменение цвета строки с нажатой таблицей с помощью jQuery
Мне нужна ваша помощь,
Как я могу, используя jQuery,
Измените цвет фона для выбранной строки в моей таблице (в этом примере можно использовать выделенный класс css
и если эта же строка снова нажата, измените ее на свой цвет по умолчанию (белый), выберите класс css "неосвещенный"
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.highlighted {
background: red;
}
.nonhighlighted {
background: white;
}
</style>
</head>
<body>
<table id="data" border="1" cellspacing="1" width="500" id="table1">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
Ответы
Ответ 1
.highlight { background-color: red; }
Если вы хотите несколько вариантов выбора
$("#data tr").click(function() {
$(this).toggleClass("highlight");
});
Если вы хотите выбрать только одну строку в таблице за раз
$("#data tr").click(function() {
var selected = $(this).hasClass("highlight");
$("#data tr").removeClass("highlight");
if(!selected)
$(this).addClass("highlight");
});
Также обратите внимание, что ваш тег TABLE имеет 2 идентификатора, вы не можете этого сделать.
Ответ 2
Создайте класс css, который применяет цвет строки, и используйте jQuery для включения/выключения класса:
CSS
.selected {
background-color: blue;
}
JQuery
$('#data tr').on('click', function() {
$(this).toggleClass('selected');
});
Первый клик добавит класс (сделав фоновый цвет синим), а следующий клик удалит класс, возвращая его к тому, что было до этого. Повторите!
В отношении двух классов CSS, которые у вас уже есть, я бы изменил класс .nonhighlighted
, который будет применяться ко всем строкам таблицы по умолчанию, затем включите и выключите .highlighted
:
<style type="text/css">
.highlighted {
background: red;
}
#data tr {
background: white;
}
</style>
$('#data tr').on('click', function() {
$(this).toggleClass('highlighted');
});
Ответ 3
Здесь возможно решение, которое будет окрашивать всю строку для вашей таблицы.
CSS
tr.highlighted td {
background: red;
}
JQuery
$('#data tr').click(function(e) {
$('#data tr').removeClass('highlighted');
$(this).toggleClass('highlighted');
});
Демо: http://jsfiddle.net/jrthib/HVw7E/2/
Ответ 4
в вашем css:
.selected{
background: #F00;
}
в jquery:
$("#data tr").click(function(){
$(this).toggleClass('selected');
});
В принципе вы создаете класс и добавляет/удаляет его из выбранной строки.
Btw, вы могли бы показать больше усилий, там вообще нет css или jquery/js в вашем коде xD
Ответ 5
jQuery:
$("#data td").toggle(function(){
$(this).css('background-color','blue')
},function(){
$(this).css('background-color','ur_default_color')
});
Ответ 6
Удалить второе объявление id таблицы:
<table id="data" border="1" cellspacing="1" width="500" **id="table1"**>
Ответ 7
Я не эксперт в JQuery, но у меня такой же сценарий, и я могу сделать следующее:
$("#data tr").click(function(){
$(this).addClass("selected").siblings().removeClass("selected");
});
Стиль:
<style type="text/css">
.selected {
background: red;
}
</style>
Ответ 8
Выделите { background-color: papayawhip; }
$("#table tr").click(function() {
$("#table tr").removeClass("highlight");
$(this).addClass("highlight");
});