Работаю на сайте с несколькими кнопками, все что я хочу, это чтобы кнопки при нажатии на них меняли цвет. Пример. Нажмите кнопку 1, и цвет кнопки 1 изменится с белого на желтый. Нажмите на кнопку 2, и цвет кнопки 2 изменится с белого на желтый. Прямо сейчас у меня есть onclick в коде кнопки, и он работает, за исключением того, что он меняет все кнопки сразу.
$(document).ready(function() {
$(".button").click(function() {
$(".button").css('background', 'yellow');
});
});.button {
background-color: #FFFFFF;
/* White */
border: 2px solid #f44336;
color: black;
padding: 10px 10px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 30px;
border-radius: 50%;
width: 60px;
text-align: center;
cursor: pointer
}
.disabled {
background-color: #FF0000;
/* Red */
color: white;
cursor: not-allowed;
}
.button-clicked {
background-color: #FFFF00;
/* Yellow */
}
td:not(:first-child) {
padding-top: 5px;
padding-bottom: 5px;
padding-right: 5px;
}<script src = "Https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table width = "100%" border=1>
<tr>
<td align = "center"><button class = "button" id = "1" onclick = "myFunction()">1</button></td>
<td align = "center"><button class = "button" id = "2" onclick = "myFunction()">2</button></td>
<td align = "center"><button class = "button" id = "3" onclick = "myFunction()">3</button></td>
</tr>
</table>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пытаться
function myFunction(event) {
event.target.style = "background: yellow";
}<button class = "button" id = "1" onclick = "myFunction(event)">1</button>
<button class = "button" id = "2" onclick = "myFunction(event)">2</button>
<button class = "button" id = "3" onclick = "myFunction(event)">3</button>Или это (что немного лучше, потому что мы не используем обработчик onclick (подробнее здесь))
function myFunction(event) {
event.target.style = "background: yellow";
}
[...document.querySelectorAll('button')].map(x=>x.addEventListener('click',myFunction));<button class = "button" id = "1">1</button>
<button class = "button" id = "2">2</button>
<button class = "button" id = "3">3</button>добавлен код, который я использую. Я изменил идентификатор на всех кнопках.
Вот решение с использованием предоставленного вами кода, вам просто нужно изменить $(".button").css('background', 'yellow'); на $(this).css('background', 'yellow');
Вы также можете удалить onclick из своего HTML.
Хотя это рабочий фрагмент с вашим кодом, другие предоставили лучшие решения этой проблемы.
<!DOCTYPE html>
<html>
<head>
<script src = "Https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$(".button").click(function () {
$(this).css('background', 'yellow');
});
});
</script>
<style>
.button {
background-color: #FFFFFF;
/* White */
border: 2px solid #f44336;
color: black;
padding: 10px 10px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 30px;
border-radius: 50%;
width: 60px;
text-align: center;
cursor: pointer
}
.disabled {
background-color: #FF0000;
/* Red */
color: white;
cursor: not-allowed;
}
.button-clicked {
background-color: #FFFF00;
/* Yellow */
}
td:not(:first-child) {
padding-top: 5px;
padding-bottom: 5px;
padding-right: 5px;
}
</style>
</head>
<body>
<table width = "100%" border=1>
<tr>
<td align = "center"><button class = "button" id = "1">1</button></td>
<td align = "center"><button class = "button" id = "2">2</button></td>
<td align = "center"><button class = "button" id = "3">3</button></td>
</body>
</html>Есть ли способ добавить текстовые данные в поле таблицы? В порядке нажатия. Кто-то нажимает кнопку 3, информация об идентификаторе из кнопки 3 переходит в другое поле данных.
Покажите нам код. Отредактируйте свой вопрос, нажмите кнопку
<>или нажмите Ctrl+M и создайте рабочий пример проблемы. Похоже, ваша логика щелчка ищет все кнопки для изменения, а не использует элемент в событии, чтобы узнать, какую из них изменить.