Javascript.RU

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

[Решено] Как обратиться к id если он содержит точки?
Здравствуйте)
Помогите решить возможно банальную проблему.

Есть код который добавляет класс одному иду и убирает этот же клас у другого ида:

<script type="text/javascript">
$('#ku.ku.ku').click(function() {
    $(ku.ku.ku).addClass('active');
    $(be.be.be).removeClass('active');
  });
</script>


Но этот код не работает если мы обращаемся к ид в котором содержатся точки "ku.ku.ku". если сделать без точек "kukuku" тогда срабатывает. Подскажите, как сделать так чтобы код работал по ид с точками? Заранее очень благодарен.

Последний раз редактировалось StartGames, 09.12.2019 в 19:38. Причина: Проблема решена, спасибо Рони
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2019, 09:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Экранировать $('#ku\\.ku\\.ku'), но не надо определять такие id, сами же когда либо запутаетесь, или с багами столкнетесь.
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2019, 09:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от laimas
Экранировать
пойду проверять
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2019, 09:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от рони
Экранировать $('#ku\\.ku\\.ku')
работает, ещё можно так
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .active{
      background-color: #FF0000;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
$('[id="ku.ku.ku"]').click(function() {
    $(this).addClass('active');
    $('[id="be.be.be"]').removeClass('active');
  });
});
  </script>
</head>

<body>
<div id="ku.ku.ku">ku.ku.ku</div>
<div id="be.be.be" class="active">be.be.be</div>
</body>
</html>

Сообщение от laimas
но не надо определять такие id, сами же когда либо запутаетесь, или с багами столкнетесь.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2019, 09:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
ещё можно так
Да, с точками пойдет, но легко допустить ошибку если в имени будут квадратные скобки.
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2019, 17:57
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Спасибо большое)) Реально работает)
Но из-за того что модуль кодил какой то чертов гений на своей волне, скрипт срабатывает только раз http://prntscr.com/q8cyat
Повторный клик ни к чему не приводит.

Вот это головоломка, как только я подбираюсь к решению проблемы, тут же она перерастает во что то другое. такое ощущение что сайт отказывается правильно работать не смотря на логику. Никак не могу прикрутить иду класс актив((

Чтобы попасть на эту страницу:
1) Добавляем любой товар в корзину http://i502752a.beget.tech/supy
2) Заходим сюда http://i502752a.beget.tech/checkout

Вот там и есть этот злорадный код который работает против всех законов. На этот мелкий нюанс потратил больше дня...

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

Или как добавить стиль элементу, если сам элемент родительский, а стиль нужно добавить если дочерный элемент отмечен :checked

<div id="su.free.free">
      <label for="free.free">
            <input type="radio" name="shipping_method" value="free.free" id="free.free" checked="checked" data-refresh="5" class="styled"> 
            <span class="text">Бесплатная доставка</span>
            <span class="price">0 руб</span>
      </label>
</div>


Нужно чтобы срабатывал стиль для ид su.free.free только в том случае, если input внутри отмечен checked="checked".

Вот скриншот: http://prntscr.com/q8d8th

Подскажите решение?)))
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2019, 18:47
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

Вот что то на подобии CSS
#shipping_method_list input:checked ~ * .radio-input {color:red !important}

Т.е. если дочерный input отмечен checked тогда родительский элемент с класом .radio-input {color:red !important}

<div id="shipping_method_list">
					

						
							
								 
									<strong class="title nn">Доставка</strong>
								

								
									
									  <div class="radio-input radio active" id="su.flat.flat">
									    <label for="flat.flat">
									    
									      <input type="radio" name="shipping_method" value="flat.flat" id="flat.flat" checked="checked" data-refresh="5" class="styled"> 
									    
									    <span class="text">Доставка</span><span class="price">80 руб</span></label>
									  </div>
									
								
							
								 
									<strong class="title nn">Самовывоз</strong>
								

								
									
									  <div class="radio-input radio" id="su.pickup.pickup">
									    <label for="pickup.pickup">
									    
									      <input type="radio" name="shipping_method" value="pickup.pickup" id="pickup.pickup" data-refresh="5" class="styled"> 
									    
									    <span class="text">Самовывоз</span><span class="price">0 руб</span></label>
									  </div>
									
								
							
						
					
				</div>
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2019, 19:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

StartGames,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    .radio-input.active {color:red !important}
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
$(function() {
$('#shipping_method_list').on('change','[name="shipping_method"]', function() {
        $(this).parents('div.radio-input').addClass('active').siblings('div.radio-input').removeClass('active');
    });
});
    </script>
</head>
<body>
<div id="shipping_method_list">
                                    <strong class="title nn">Доставка</strong>
                                      <div class="radio-input radio active" id="su.flat.flat">
                                        <label for="flat.flat">
                                          <input  type="radio" name="shipping_method" value="flat.flat" id="flat.flat" checked="checked" data-refresh="5" class="styled">
                                        <span class="text">Доставка</span><span class="price">80 руб</span></label>
                                      </div>
                                    <strong class="title nn">Самовывоз</strong>
                                      <div class="radio-input radio" id="su.pickup.pickup">
                                        <label for="pickup.pickup">
                                          <input type="radio" name="shipping_method" value="pickup.pickup" id="pickup.pickup" data-refresh="5" class="styled">
                                        <span class="text">Самовывоз</span><span class="price">0 руб</span></label>
                                      </div>
                </div>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 09.12.2019, 19:32
Кандидат Javascript-наук
Отправить личное сообщение для StartGames Посмотреть профиль Найти все сообщения от StartGames
 
Регистрация: 13.06.2014
Сообщений: 143

рони, куда еще один лайк поставить?)) Спасибо большое, выручили))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к параметру объекта или массива Alex_dark74 Общие вопросы Javascript 5 31.07.2019 15:48
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
ViewModel: Как запретить загрузку хранилища, если его фильтр не определен? khusamov ExtJS 0 22.05.2016 19:25
Не могу получить значение атрибута src, если оно содержит пробел Hurray Общие вопросы Javascript 2 19.04.2014 19:17
Как обратиться с сервису? assan AJAX и COMET 8 28.07.2010 09:46