Показать сообщение отдельно
  #9 (permalink)  
Старый 09.09.2019, 17:23
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Я так понимаю, что вы хотите выбрать из вашего UL-списка пункт, чтобы остальные, кроме выбранного, скрылись, и выбранное значение записалось в SELECT-список.

<div class="value">
	<select id="#select" style="display: none;">
		<option value="">Выбрать опцию</option>
		<option value="white">Белый</option>
		<option value="black">Черный</option>
	</select>
	<div>
		<span class="current">Выбрать опцию</span>
		<ul class="list">
			<li data-value="" class="option selected">Выбрать опцию</li>
			<li data-value="white" class="option">Белый</li>
			<li data-value="black" class="option">Черный</li>
		</ul>
	</div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

$("li[data-value]").on("click", function() {
	$("li:not([data-value=" + $(this).data("value") + "])", this.parentNode).hide();
	$("select", $(this).closest(".value")).val($(this).data("value"));
});
	
</script>



orange8031, а вообще зачем вам SELECT, если он всё равно скрыт? Для формы достаточно input[type=hidden]
<div class="value">
	<input type="hidden">
	<div>
		<span class="current">Выбрать опцию</span>
		<ul class="list">
			<li data-value="" class="option selected">Выбрать опцию</li>
			<li data-value="white" class="option">Белый</li>
			<li data-value="black" class="option">Черный</li>
		</ul>
	</div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

$("li[data-value]").on("click", function() {
	$("li:not([data-value=" + $(this).data("value") + "])", this.parentNode).hide();
	$("input[type=hidden]", $(this).closest(".value")).val($(this).data("value"));
});
	
</script>


orange8031, не пиши <select id="#select" style="display: none;">, пиши <input type="hidden">

Последний раз редактировалось Malleys, 09.09.2019 в 17:28.
Ответить с цитированием