-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
kosmonavtom |
22-08-2019 19:31 2885131 |
Получение элемента по атрибуту data-*
Здравствуйте.
Вот нашел и собрал вот такой код с ошибками (ошибки в строке с: elem = document.querySelector("div[data-reactid=sr]"); видимо не так что-то пишу)
Код:
<script>
function chpok(sr){
elem = document.querySelector("div[data-reactid=sr]"); //находим блок div и значение атрибута data-reactid
state = elem.style.display; //смотрим, включен ли сейчас элемент
if (state =='') elem.style.display='none'; //если включен, то выключаем
else elem.style.display=''; //иначе - включаем
}
</script>
Он должен работать (т.е. отображать блоки div или скрывать при нажатии на кнопки) для тегов HTML вида:
HTML код:
<button onclick="chpok('.1.$0')">
Вопрос 1
</button>
<div data-reactid='.1.$0' style="display:none">
Это выводится первый вопрос?
</div>
<button onclick="chpok('.1.$1')">
Вопрос 2
</button>
<div data-reactid='.1.$1' style="display:none">
Тут выводится второй вопрос.
</div>
Если везде заменить "data-reactid" на "id", и ошибочную строку на строку elem = document.getElementById(id); то все работает, но проблема в том, что в тегах на сайте нет и не будет аттрибута id. Подскажите пожалуйста можно ли получить элемент по значению атрибутов "data-reactid" - они уникальны для каждого объекта на странице тега div. И что тогда нужно сделать? Заранее спасибо за любой ответ.
|
Serguei Kouzmine |
22-08-2019 23:55 2885161 |
поставьте в аргумент чтоб с указанным аттрибутом искать
|
потому что sr в строке - это просто sr.
Код:
"div[data-reactid=\"" + sr +"\"]"
либо шаблонная строка
Код:
`div[data-reactid="${sr}"]`
|
Время: 17:16.
© OSzone.net 2001-