Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2023, 12:38
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

получить value по кликнотому li
здравствуйте.
как можно получить value кликнув по определенному li?
почему то всегда получаю 0

<ul class="list-unstyled text-center">
    {% if dop1 %}<li id="pwc{{ dop2 }}" class="active" value="by_cat{{ dop2 }}"><div>{{ dop1 }}</div></li>{% endif %}
    {% if dop3 %}<li id="pwc{{ dop4 }}" value="by_cat{{ dop4 }}"><div>{{ dop3 }}</div></li>{% endif %}
    {% if dop5 %}<li id="pwc{{ dop6 }}" value="by_cat{{ dop6 }}"><div>{{ dop5 }}</div></li>{% endif %}
    {% if dop7 %}<li id="pwc{{ dop8 }}" value="by_cat{{ dop8 }}"><div>{{ dop7 }}</div></li>{% endif %}
    {% if dop9 %}<li id="pwc{{ dop10 }}" value="by_cat{{ dop10 }}"><div>{{ dop9 }}</div></li>{% endif %}
    {% if dop11 %}<li id="pwc{{ dop12 }}" value="by_cat{{ dop12 }}"><div>{{ dop11 }}</div></li>{% endif %}
    {% if dop13 %}<li id="pwc{{ dop14 }}" value="by_cat{{ dop14 }}"><div>{{ dop13 }}</div></li>{% endif %}
    {% if dop15 %}<li id="pwc{{ dop16 }}" value="by_cat{{ dop16 }}"><div>{{ dop15 }}</div></li>{% endif %}
  </ul>
  <script>
    let act_cat;
    $('#html39 li').click(function(){
      $('#html39 li').removeClass('active');
      $(this).addClass('active');
      act_cat = $(this).val();
      alert(act_cat)
    });
  </script>


дело в том что каждый из li хранит определенный id другого блока которому нужно добавить класс active при нажатии на li.
Ответить с цитированием
  #2 (permalink)  
Старый 02.01.2023, 13:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

StartGames,
не надо пихать что попало куда оно не стояло!!!
нет value в li, есть только в полях формы input, select, textarea.
если очень хочется,
act_cat = $(this).attr('value');

но лучше по нормальному data-id="by_cat{{ dop4 }}" вместо value="by_cat{{ dop4 }}" и тогда
act_cat = $(this).data('id');
Ответить с цитированием
  #3 (permalink)  
Старый 02.01.2023, 13:04
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Просто взять значение атрибута value у li, по которому кликнули
<body>
<ul  class="list-unstyled text-center">
<li value="x1"> li 1</li>
<li value="x2"> li 2</li>
<li value="x3"> li 3</li>
</ul>
<script>
document.querySelector('.list-unstyled')
	.addEventListener('click', (ev)=>{
		const li = ev.target.closest('li')
		alert(li.getAttribute('value'));
	})</script>
</body>
Ответить с цитированием
  #4 (permalink)  
Старый 02.01.2023, 13:05
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от рони
нет value в li, есть только в полях формы input, select, textarea.
Есть!
https://developer.mozilla.org/ru/doc...TML/Element/li

Он есть у <button>, <data>, <input>, <li>, <meter>, <option>, <progress>, <param>
https://developer.mozilla.org/en-US/...TML/Attributes

А вот у select и textareа нет такого атрибута. У элементов есть свойство value, но оно не связано с атрибутом.

Последний раз редактировалось voraa, 02.01.2023 в 13:14.
Ответить с цитированием
  #5 (permalink)  
Старый 02.01.2023, 13:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

voraa,
ок! но не для хранения чего попало, а только числа.
Ответить с цитированием
  #6 (permalink)  
Старый 02.01.2023, 13:20
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Ну на самом деле хранить то можно, что угодно. Любую строку
И получить это через getAttribute.
Вот свойство value, действительно только число. И будет 0, если атрибут не переводится в число.

Хотя data-value было бы корректнее.

Последний раз редактировалось voraa, 02.01.2023 в 13:23.
Ответить с цитированием
  #7 (permalink)  
Старый 02.01.2023, 21:30
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Спасибо парни, помогли)) только интересно какие последствия могут быть если если использовать именно value в li который содержит не только цифры.
Ответить с цитированием
  #8 (permalink)  
Старый 02.01.2023, 21:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от StartGames
какие последствия
никаких, ножом тоже можно есть, но ложкой удобнее)))
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2023, 02:36
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Сообщение от рони Посмотреть сообщение
никаких, ножом тоже можно есть, но ложкой удобнее)))
ахах)) понял, использовал data-value надеюсь так будет лучше)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить данные с AnalyzerNode SWolf Events/DOM/Window 0 20.01.2017 22:52
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
jquery получить родителя и обратится к элементу внутри по class _Eldar_ Общие вопросы Javascript 6 05.04.2015 19:32
Получить все точки отрезка прямой? Gozar Оффтопик 84 29.12.2014 16:18
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35