#javascript #jquery #css #html
#javascript #jquery #css #HTML
Вопрос:
У меня есть выпадающий список:
<select class="select_menu_type">
<option value="value1">foo</option>
<option value="value2">bar</option>
</select>
<div class="value1">Lorem ipsum VALUE1</div>
<div class="value2">Lorem ipsum VALUE2</div>
По умолчанию все div не отображаются.
Мне нужно отобразить div с тем же классом, что и выбранное значение параметра.
Есть идеи, как это сделать с помощью jQuery?
Мой прогресс до сих пор:
jQuery('#select_order_type').change(function(){
var selectedOption = document.getElementById('select_order_type');
console.log(selectedOption.options[selectedOption.selectedIndex].value)
});
Мне нужно показать div с тем же классом, что и мое выбранное значение…
Комментарии:
1. Кроме того, я рекомендую использовать идентификаторы вместо классов для divs — идентификаторы используются один раз, классы предназначены для многократного использования. Если я не ошибаюсь, кажется, что эта настройка выполняется только один раз на странице.
2. используйте кнопку поиска и попробуйте выполнить поиск
.load()
функции иonchange
события
Ответ №1:
Вы могли бы попробовать:
$('.select_menu_type ').change(function(){
var $Select = $(this).val();
$('div').hide();
$('.' $Select).show();
})
Ответ №2:
$(function() {
$('.select_menu_type').on('change',function() {
var cls = this.value;
$('div').hide();
$('div.' cls).show();
});
});
Для лучшего кодирования я бы предложил поместить элементы div в другой div или элемент, чтобы было легче управлять только этими разделениями.
Ответ №3:
я уже пробовал это самостоятельно, надеюсь, это ответ на ваш вопрос 🙂
При первой загрузке документа нам нужно узнать, сколько опций у вас есть в вашем выборе, и мы должны скрыть все div, а затем показать div, класс которого равен выбранному значению поля выбора
var optionValues = [];
$('.select_menu_type option').each(function() {
optionValues.push($(this).val());
});
$( document ).ready(function() {
for( var ctr = 0; ctr < optionValues.length; ctr ){
if( $('.select_menu_type').val() === optionValues[ctr]){
$('.' optionValues[ctr]).show();
}
else{
$('.' optionValues[ctr]).hide();
}
}
});
затем просто скопируйте готовую функцию внутри onchange этого выбора 🙂
$('.select_menu_type').change(function(){
for( var ctr = 0; ctr < optionValues.length; ctr ){
if( $('.select_menu_type').val() === optionValues[ctr]){
$('.' optionValues[ctr]).show();
}
else{
$('.' optionValues[ctr]).hide();
}
}
});