Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.06.2021, 11:13
Интересующийся
Отправить личное сообщение для javascript888 Посмотреть профиль Найти все сообщения от javascript888
 
Регистрация: 07.05.2021
Сообщений: 16

Как Сделайте кнопку, по нажатию на которую в красный фон покрасится та ячейка, номер
Как Сделайте кнопку, по нажатию на которую в красный фон покрасится та ячейка, номер которой совпадает с номером из переменных.
Дана следующая HTML таблица:
<table id="table"> <tr> <td data-row="1" data-col="1"></td> <td data-row="1" data-col="2"></td> <td data-row="1" data-col="3"></td> </tr> <tr> <td data-row="2" data-col="1"></td> <td data-row="2" data-col="2"></td> <td data-row="2" data-col="3"></td> </tr> <tr> <td data-row="3" data-col="1"></td> <td data-row="3" data-col="2"></td> <td data-row="3" data-col="3"></td> </tr>
</table>
Даны также две переменные, в которых хранятся номер колонки и номер ряда:
let col = 2;
let row = 3;
Сделайте кнопку, по нажатию на которую в красный фон покрасится та ячейка, номер которой совпадает с номером из переменных.

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>focusout</title>
</head>
<body>

<table id="table">
    <tr>
        <td data-row="1" data-col="1"></td>
        <td data-row="1" data-col="2"></td>
        <td data-row="1" data-col="3"></td>
    </tr>
    <tr>
        <td data-row="2" data-col="1"></td>
        <td data-row="2" data-col="2"></td>
        <td data-row="2" data-col="3"></td>
    </tr>
    <tr>
        <td data-row="3" data-col="1"></td>
        <td data-row="3" data-col="2"></td>
        <td data-row="3" data-col="3"></td>
    </tr>
</table>
<button>кнопка</button>
<script>

        let col = 2;
        let row = 3;
        let button = document.querySelector('button');
        button.addEventListener('click', function(){
        let rowTds = document.querySelectorAll('#table td[data-row = "' + row + '"]');
        for(let rowTd of rowTds){
        if( rowTd.dataset.col == col){
        rowTd.classList.add('color');
    };
    };
    });


</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2021, 11:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от javascript888
Даны также две переменные, в которых хранятся номер колонки и номер ряда:
let col = 2;
let row = 3;
Для решения циклы не нужны...
http://code.mu/ru/javascript/manual/dom/rows/
http://code.mu/ru/javascript/manual/dom/cells/
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2021, 13:37
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

<html>
  <style type="text/css">
    td{
      padding: 10px;
      border: 1px solid red;
    }
  </style>
<body>
<table id="table">
  <tr>    <td> </td><td> </td><td> </td>    </tr>
  <tr>    <td> </td><td> </td><td> </td>    </tr>
  <tr>    <td> </td><td> </td><td> </td>    </tr>
</table>
<button>кнопка</button>
<script>
  const [col,row]=[2,3]
  document.querySelector('button').addEventListener('click', function(){
    document.querySelector('table').rows[col-1].cells[row-1].style.background = 'red'
  });
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2021, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>up and down</title>
    <style type="text/css">
    table{
        border-collapse: collapse;
    }

    td{
        height: 40px;
        width: 40px;
        border: 1px solid rgba(0, 0, 128, 1);
        text-align: center;
    }
    td:after{
        content: attr(data-row)attr(data-col);
    }

    .active{
        background-color: rgba(255, 0, 255, 1);
    }

    </style>
</head>
<body>
<table id="table">
    <tr>
        <td data-row="1" data-col="1"></td>
        <td data-row="1" data-col="2"></td>
        <td data-row="1" data-col="3"></td>
    </tr>
    <tr>
        <td data-row="2" data-col="1"></td>
        <td data-row="2" data-col="2"></td>
        <td data-row="2" data-col="3"></td>
    </tr>
    <tr>
        <td data-row="3" data-col="1"></td>
        <td data-row="3" data-col="2"></td>
        <td data-row="3" data-col="3"></td>
    </tr>
</table>
<button>кнопка</button>
<script>
    const length = document.querySelectorAll('tr:first-child > td').length;
    const tds = document.querySelectorAll('td');
    let [col,row]=[2,3];
    const i = --row * length + --col;
    const {style} = tds[i];
    document.querySelector('button').addEventListener('click', function(){
        style.background = 'red'
    });
</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы по нажатию на кнопку выполнялась функция? Zombie_Killer Общие вопросы Javascript 11 06.07.2017 21:34
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29