Я работаю с предыдущим кодом звездного рейтинга разработчиков. Мне нужно изменить его, потому что он работает не так, как задумал разработчик. Если вы посмотрите, там есть label
элементы со звездами внутри. Вы видите, что первый label
имеет 1 span
, а 5-й label
имеет 5 spans
.
Пример того, как это работает сейчас, - вы нажимаете на 5-й input
, у разработчика есть 5 звезд внутри label
, но чтобы заставить его работать по назначению Мне действительно нужно изменить другие диапазоны меток а также . Итак, скажем, пользователь выбирает 3 звезды, мне нужно изменить span
внутри меток 1, 2 и 3. Чтобы выбрать 4 звезды, мне нужно изменить span
внутри меток 1, 2, 3 и 4.
Я думал о решении jquery / javascript, которое обходит метки (возможно, с помощью идентификаторов). Поэтому, если они нажмут на ввод 4, решение javascript будет проходить по всем промежуткам внутри меток 1, 2, 3 и 4 и обновлять css. Я не уверен, как это сделать.
<div class="rating-selector">
<label>
<input type="radio" name="rating" value="1" />
<span class="icon">★</span>
</label>
<label>
<input type="radio" name="rating" value="2" />
<span class="icon">★</span>
<span class="icon">★</span>
</label>
<label>
<input type="radio" name="rating" value="3" />
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
</label>
<label>
<input type="radio" name="rating" value="4" />
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
</label>
<label>
<input type="radio" name="rating" value="5" />
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
<span class="icon">★</span>
</label>
</div>