/ / Як змінити фон конкретного дива при натисканні - javascript, html, css

Як змінити фон певного розділу під час натискання - javascript, html, css

Примітка. Я не знаю jQuery, тому, будь ласка, не дайте мені відповіді, як це зробити за допомогою jQuery.

У мене є кілька дівок. Я хочу знати, як я міг отримати доступ до нього та змінити його конкретний колір при натисканні за допомогою JavaScript.

Я не шукаю такого рішення document.getElementsByTagName("div")[0] тому що для цього потрібно ввести окреме число для кожного діла.

Я сподівався, що таке просте рішення дещо подібне.

<div onClick="change();"><h1>Hi</h1><div>
<div onClick="change();"><h1>Hi</h1><div>
<div onClick="change();"><h1>Hi</h1><div>

<script>
function change(){
this.style.backgroundColor = "red";
}
</script>

Відповіді:

2 для відповіді № 1

Оскільки ви не хочете дізнаватися jQuery (або, мабуть, не вбудовані події), врахуйте:

<div onclick="change(this)"><h1>Hi Dave!</h1></div>   <!-- use closing tags -->
<div onclick="change(this)"><h1>Hi Thomas!</h1></div>

function change(elm) {
elm.style.backgroundColor = "red"
}

Зауважте, що контекст (this) коду обробника події вбудованої події (як зазначено в атрибуті) - це елемент, який був ціллю події - у цьому випадку це буде конкретний Елемент DIV, який було натиснуто. Потім ми просто передаємо елемент у функцію зворотного виклику, щоб ми могли використовувати його загально.

Також у початковій розмітці елементи div не були закриті і призвело до гніздування. За допомогою виправлень, вище підхід працює виконати завдання. (Код скрипки присвоюється window.change безпосередньо, але це інакше та сама концепція.)


Звичайно, навчання jQuery (або іншого) на високому рівні, ймовірно, окупиться досить швидко. Використання вбудованих обробників подій - це "дуже стара школа".


0 для відповіді № 2

Це було б простіше.

<div onclick="changeColor(this)">Some text!</div>
<p>A paragraph, that will have no change by click</p>

Для JavaScript напишіть це:

function changeColor(div) {
div.style.backgroundColor = #hexvalue
}

Це змінить колір тла div а не <p>. За допомогою цього коду jQuery можна встановити будь-яке значення css для будь-якого елемента.

Однак для мене jQuery був досить легким! :) Але як хочете.