Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2018, 19:29
Новичок на форуме
Отправить личное сообщение для gdvorc Посмотреть профиль Найти все сообщения от gdvorc
 
Регистрация: 11.02.2018
Сообщений: 6

Установка radio:checked в зависимости от значения Span
Вроде простая задача. А бьюсь над ней уже 3 час. У меня есть таблица. Количество строк в ней может быть любое.
<tr id="" class="cart-item-pr">
    <td class="weight">
        <input type="radio"  class="rchecking" id="c2" name="price-hours" value="100" /><label for="c2"></label>
        <input type="radio"  class="rchecking" id="c3" name="price-hours" value="200" /><label for="c3"></label>
        <input type="radio"  class="rchecking" id="c4" name="price-hours" value="300" /><label for="c4"></label>
        <input type="radio"  class="rchecking" id="c5" name="price-hours" value="400" /><label for="c5"></label>
    </td>
    <td class="price">
        <span id="price">200</span>
    </td>
</tr>


Задача. При загрузки страницы сравнивать значение #price c val #c2, #c3, #c4, #c5 и ставить checked на нужный radio. И чтобы это все происходило для каждой tr.cart-item-pr(строки таблицы). Они могут быть одна, две три и много. Я понимаю что нужно что то мутить через $(this).Но пока не как

Последний раз редактировалось gdvorc, 11.02.2018 в 19:32.
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2018, 19:37
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <tr id="" class="cart-item-pr">
    <td class="weight">
      <input type="radio"  class="rchecking" id="c2" name="price-hours" value="100" /><label for="c2"></label>
      <input type="radio"  class="rchecking" id="c3" name="price-hours" value="200" /><label for="c3"></label>
      <input type="radio"  class="rchecking" id="c4" name="price-hours" value="300" /><label for="c4"></label>
      <input type="radio"  class="rchecking" id="c5" name="price-hours" value="400" /><label for="c5"></label>
    </td>
    <td class="price">
      <span id="price">200</span>
    </td>
    </tr>
  <script>
document.querySelector('.rchecking[value="'+document.querySelector("#price").textContent+'"]').checked = true;
  </script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 11.02.2018, 19:42
Новичок на форуме
Отправить личное сообщение для gdvorc Посмотреть профиль Найти все сообщения от gdvorc
 
Регистрация: 11.02.2018
Сообщений: 6

К сожаленю ваш вариант, так же как и множество решений что сегодня перепробовал работает только с первым <tr id="" class="cart-item-pr">
, а их в таблице будет неизвестное количество.
Ответить с цитированием
  #4 (permalink)  
Старый 11.02.2018, 19:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <tr id="" class="cart-item-pr">
    <td class="weight">
      <input type="radio"  class="rchecking" id="c2" name="price-hours" value="100" /><label for="c2"></label>
      <input type="radio"  class="rchecking" id="c3" name="price-hours" value="200" /><label for="c3"></label>
      <input type="radio"  class="rchecking" id="c4" name="price-hours" value="300" /><label for="c4"></label>
      <input type="radio"  class="rchecking" id="c5" name="price-hours" value="400" /><label for="c5"></label>
    </td>
    <td class="price">
      <span id="price">200</span>
    </td>
    </tr>
      <tr id="" class="cart-item-pr">
    <td class="weight">
      <input type="radio"  class="rchecking" id="c2" name="price-hours-2" value="100" /><label for="c2"></label>
      <input type="radio"  class="rchecking" id="c3" name="price-hours-2" value="200" /><label for="c3"></label>
      <input type="radio"  class="rchecking" id="c4" name="price-hours-2" value="300" /><label for="c4"></label>
      <input type="radio"  class="rchecking" id="c5" name="price-hours-2" value="400" /><label for="c5"></label>
    </td>
    </tr>
  <script>
document.querySelectorAll('.rchecking[value="'+document.querySelector("#price").textContent+'"]').forEach(el=>el.checked = true);
  </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2018, 19:51
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

gdvorc,
может так?
<script src="https://code.jquery.com/jquery-1.9.0.min.js"></script>
<script>
$(function(){
	$(".cart-item-pr").each(function(){
  	var price = $(this).find("td.price span").text();
    $(this).find("input.rchecking").filter(function(i, e){return $(e).val() == price;}).prop("checked", true);
  });
})
</script>
<table>
<tr id="" class="cart-item-pr">
  <td class="weight">
    <input type="radio"  class="rchecking" id="c2" name="price-hours1" value="100" /><label for="c2"></label>
    <input type="radio"  class="rchecking" id="c3" name="price-hours1" value="200" /><label for="c3"></label>
    <input type="radio"  class="rchecking" id="c4" name="price-hours1" value="300" /><label for="c4"></label>
    <input type="radio"  class="rchecking" id="c5" name="price-hours1" value="400" /><label for="c5"></label>
  </td>
  <td class="price">
    <span id="price">200</span>
  </td>
</tr>
<tr id="" class="cart-item-pr">
  <td class="weight">
    <input type="radio"  class="rchecking" id="c2" name="price-hours2" value="100" /><label for="c2"></label>
    <input type="radio"  class="rchecking" id="c3" name="price-hours2" value="200" /><label for="c3"></label>
    <input type="radio"  class="rchecking" id="c4" name="price-hours2" value="300" /><label for="c4"></label>
    <input type="radio"  class="rchecking" id="c5" name="price-hours2" value="400" /><label for="c5"></label>
  </td>
  <td class="price">
  <span id="price">400</span>
  </td>
</tr>
</table>


айдишки намеренно не использовала. т.к. они наверняка разные будут.

Последний раз редактировалось Manyasha, 11.02.2018 в 19:53.
Ответить с цитированием
  #6 (permalink)  
Старый 11.02.2018, 19:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

#price один для всех будет?
Ответить с цитированием
  #7 (permalink)  
Старый 11.02.2018, 19:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

атрибут id должен быть уникальным! тут уже миллион раз обсуждалось
Ответить с цитированием
  #8 (permalink)  
Старый 11.02.2018, 19:59
Новичок на форуме
Отправить личное сообщение для gdvorc Посмотреть профиль Найти все сообщения от gdvorc
 
Регистрация: 11.02.2018
Сообщений: 6

Примерно так. Но name менять тоже не могу. т.к. это корзина и товары грузит туда cms. А стандартным функционалом цен воспользоваться не получается. У начальника слишком извращенное представления.
В обратную сторону все работает идеально. То есть уже после загрузки тыкаю радио ставит именно в нужное место цену. а вот на оборот...
Ответить с цитированием
  #9 (permalink)  
Старый 11.02.2018, 20:00
Новичок на форуме
Отправить личное сообщение для gdvorc Посмотреть профиль Найти все сообщения от gdvorc
 
Регистрация: 11.02.2018
Сообщений: 6

Натолкнули меня на мысль. Сейчас попробую сделать по другому
Ответить с цитированием
  #10 (permalink)  
Старый 11.02.2018, 20:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

name определяет к кой группе радиокнопок относится конкретная. если он у всех будет одинаковый, выбрать можно будет только одну из группы
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор с вариантом значений. dzho Общие вопросы Javascript 45 06.08.2017 03:54
Как изменить значение jquey range в зависимости от значения select? drkrol jQuery 1 07.09.2015 01:24
Динамическое изменение значений диаграммы в зависимости от значения ползунков Volchen0ck Events/DOM/Window 8 23.04.2014 13:15
Разные значения в зависимости от опций Batyabest Events/DOM/Window 28 26.11.2013 19:40
Заполнен значениями элемент <select> из бд, в зависимости от значения второго <select basaparov jQuery 1 14.10.2012 22:02