OldSchool1705
@OldSchool1705
I want to become a programmer

Как подсветить элемент?

При щелчке левой клавишей мыши по элементу, элемент подсвечивается рамкой. Если ранее был какой-то элемент выделен, то с него выделение снимается.
через Input задаю текст и цвет но не понимаю как сделать что бы кликнуть по слову и допустим удалить или отредактировать!

<!DOCTYPE html>
<html lang="ru">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/css.css">
    <title>Document</title>
</head>

<body>
    <div id="center">


        <p>
            <b>Text</b>
            <input type="text" id="click_text">
            <b>Color</b>
            <input type="text" id="text_color">
            <b>Marker</b>
            <select name="" id="marker">
                    <option value="">disc</option>
                    <option value="">disc</option>
                    <option value="">disc</option>
                    <option value="">disc</option>
                    <option value="">disc</option>
                </select>
        </p>
        <input id="btn-run" onclick="pow2()" value="Create" type="submit">
        <input value="Change current" type="submit">
        <input value="delete current" type="submit">





        <ul id="li_app">
        </ul>

        <script src="js/script.js"></script>
</body>

</html>

function pow2() {
    var text_color = document.getElementById("text_color").value;
    var click_text = document.getElementById("click_text").value;

    var li = document.createElement('LI');
    li.style.color = text_color;
    var textnode = document.createTextNode(click_text);
    li.appendChild(textnode);

    document.getElementById("li_app").appendChild(li);
}

document.getElementById("btn-run").addEventListener("click");
  • Вопрос задан
  • 566 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
HTML
<p>
  <b>Text</b>
  <input type="text" id="text">
  <b>Color</b>
  <input type="text" id="color">
</p>
<button id="create">create</button>
<button id="update">update</button>
<button id="del">delete</button>
<ul id="items"></ul>

CSS
.active {
  border: 2px solid black;
}

JS
const
  [  items,   text,   color,   create,   update,   del  ] =
  [ 'items', 'text', 'color', 'create', 'update', 'del' ]
    .map(n => document.getElementById(n));

create.addEventListener('click', () => {
  items.insertAdjacentHTML('beforeend', `<li style="color: ${color.value}">${text.value}</li>`);
  updateForm('', '');
});

update.addEventListener('click', () => ifActive(a => {
  a.innerText = text.value;
  a.style.color = color.value;
}));

del.addEventListener('click', () => ifActive(a => a.remove()));

items.addEventListener('click', e => {
  const item = e.target.closest('li');
  if (item) {
    ifActive(a => item !== a && a.classList.remove('active'));
    item.classList.toggle('active');
    ifActive(a => updateForm(a.innerText, a.style.color));
  }
});

function ifActive(f) {
  const active = items.querySelector('.active');
  active && f(active);
}

function updateForm(textVal, colorVal) {
  text.value = textVal;
  color.value = colorVal;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 07:09
50000 руб./за проект
22 мая 2024, в 02:15
10000 руб./за проект