Ответ на решение частично
здесь , хочу развить. Ниже мой пример и реализация оттуда, прошу помощь объединить.
Есть html таблица, с особенными ячейками. Каждая ячейка "особенная" содержит один checkbox. Смысл в том чтобы менять её цвет кликом и устанавливать в checkbox флаг. Менять только у этих особенных. Они имеют класс в тэг <td>.
Реализовал смену цвета при установке флага в checkbox. Не знаю как сменить цвет кликом по ячейке. Не знаю как соединить это с флагом у checkbox, чтобы я с ним работать смог.
var boxes = $("input:checkbox");
var table = document.forms["table"];
var elements = table.getElementsByTagName('td');
var checkTd
//из всех ячеек выбираются только "особенные"
for (var i = 0; i < elements.length; i++)
{
if (elements[i].className == 'select_checkbox')
{ checkTd +=elements[i]; }
}
$("input:checkbox").on("change", function ()
{
for (var k = 0; k < boxes.length; k++)
{
var checkbox = boxes[k];
if ($(checkbox).prop('checked'))
{
if (checkbox == checkTd[k]) //если ячейка и checkbox по номеру совпали
{ checkTd[k].bgColor = '#ccc';}
//далее шла работа с выбранными checkbox
}
}
});
Вот так выглядит "особенная" ячейка:
Код:
|
<td class="select_checkbox" onclick = "cellClick(td)"> |
Вот код по ссылке в начале.
function cellClick(td) {
td.bgColor = '#006699';
for (var childItem in td.childNodes) {
if (td.childNodes[childItem].nodeType == 1)
{
td.childNodes[childItem].checked = true;
td.querySelector("input[type=checkbox]").checked = true;
}
}