Javascript.RU

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

Создание ссылок из выпадающего списка
Добрый день уважаемый. Столкнулся с такой задачей => На мобильных устройствах для сайта необходимо реализовать сортировку товара, и что б оно выглядела как множество кнопочек. Поскольку как таковая сортировка уже есть через select (для десктоп версии) мною было принято решение сделать отдельное попап поле в которое по нажатию на кнопку одноразово будут формироваться ссылки с адресами из этого select .
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
	<style>
	.btn_sorted__mobile {
		border: 1px solid #000;
		padding: 5px;
	}
	.bl_sortField{
		width: 300px;
		min-height: 300px;
		border: 1px solid #f00;
	}
	.test{
		display: block;
		margin-bottom: 5px;
		color: #f00;
	}
</style>
</head>


<body>
	<button class="btn_sorted__mobile" type="button">Сортировать</button>

	<div class="bl_sorter">
		<select class="bl_sorter__select js-mainSorter" onchange="location = this.value;">
			<option value="http://test1">По популярности</option>
			<option value="http://test2">Название (А - Я)</option>
			<option value="http://test3">Название (Я - А)</option>
			<option value="http://test4">Сначала подешевле</option>
			<option value="http://test5">Сначала подороже</option>
		</select>
	</div>
	<div class="bl_sortField"></div>
	<script>
		window.onload = function () {

			var btnSorted = $(".btn_sorted__mobile"),
			blockSortField = $(".bl_sortField");

			btnSorted.one('click', function(){
				var numberOfSelect = $(".js-mainSorter option").length;
				var sorterSelectVal =  $(".js-mainSorter option").each(function(){$(this).val()});
				var sorterSelectText = $(".js-mainSorter option").each(function(){$(this).text()});


				for(var i = 0; i < numberOfSelect; i++){
					blockSortField.append('<a class="test" href=" ' + sorterSelectVal.eq(i) +' " >' + sorterSelectText.eq(i) + '</a>')
				}

				console.log("numberOfSelect =" + numberOfSelect);
				console.log( "sorterSelectVal =" + sorterSelectVal );
				console.log( "sorterSelectText =" + sorterSelectText );

			});
		}
	</script>
</body>
</html>

Попробовал реализовать, но что-то пошло не так. Не могу понять почему мне сыпятся объекты а не их значения? Подскажите как исправить ?
Ответить с цитированием
  #2 (permalink)  
Старый 20.05.2018, 19:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Black_Star,
строки 47 и 48 пустышки, код правильный но ни о чём.
Ответить с цитированием
  #3 (permalink)  
Старый 20.05.2018, 19:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Black_Star,
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <style>
    .btn_sorted__mobile {
        border: 1px solid #000;
        padding: 5px;
    }
    .bl_sortField{
        width: 300px;
        min-height: 300px;
        border: 1px solid #f00;
    }
    .test{
        display: block;
        margin-bottom: 5px;
        color: #f00;
    }
</style>
</head>


<body>
    <button class="btn_sorted__mobile" type="button">Сортировать</button>

    <div class="bl_sorter">
        <select class="bl_sorter__select js-mainSorter" onchange="location = this.value;">
            <option value="http://test1">По популярности</option>
            <option value="http://test2">Название (А - Я)</option>
            <option value="http://test3">Название (Я - А)</option>
            <option value="http://test4">Сначала подешевле</option>
            <option value="http://test5">Сначала подороже</option>
        </select>
    </div>
    <div class="bl_sortField"></div>
    <script>
        window.onload = function () {
            var btnSorted = $(".btn_sorted__mobile"),
            blockSortField = $(".bl_sortField");
            btnSorted.one('click', function(){
                $(".js-mainSorter option").each(function(){
                blockSortField.append('<a class="test" href=" ' + this.value +' " >' + this.text + '</a>') });
            });
        }
    </script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 20.05.2018, 19:31
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

рони та что ж в нём правильного, если он не о чём ?
Я просто был уверен что мне .each надергает значений которыми я смогу потом воспользоваться, а вижу что это не так
Ответить с цитированием
  #5 (permalink)  
Старый 20.05.2018, 19:34
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

рони, спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 20.05.2018, 19:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Black_Star
each
each ничего не возращает!!!
видимо хотели что-то такое ... вариант ниже только для демострации!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <style>
    .btn_sorted__mobile {
        border: 1px solid #000;
        padding: 5px;
    }
    .bl_sortField{
        width: 300px;
        min-height: 300px;
        border: 1px solid #f00;
    }
    .test{
        display: block;
        margin-bottom: 5px;
        color: #f00;
    }
</style>
</head>


<body>
    <button class="btn_sorted__mobile" type="button">Сортировать</button>

    <div class="bl_sorter">
        <select class="bl_sorter__select js-mainSorter" onchange="location = this.value;">
            <option value="http://test1">По популярности</option>
            <option value="http://test2">Название (А - Я)</option>
            <option value="http://test3">Название (Я - А)</option>
            <option value="http://test4">Сначала подешевле</option>
            <option value="http://test5">Сначала подороже</option>
        </select>
    </div>
    <div class="bl_sortField"></div>
    <script>
        window.onload = function () {

            var btnSorted = $(".btn_sorted__mobile"),
            blockSortField = $(".bl_sortField");

            btnSorted.one('click', function(){
                var numberOfSelect = $(".js-mainSorter option").length;
                var sorterSelectVal =  $(".js-mainSorter option").map(function(){return $(this).val()});
                var sorterSelectText = $(".js-mainSorter option").map(function(){return $(this).text()});

                for(var i = 0; i < numberOfSelect; i++){
                    blockSortField.append('<a class="test" href=" ' + sorterSelectVal.eq(i)[0] +' " >' + sorterSelectText.eq(i)[0] + '</a>')
                }

            });
        }
    </script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 20.05.2018, 20:40
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Спасибо, за пояснение
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 константы в опции выпадающего списка Skypidar Общие вопросы Javascript 3 28.06.2017 12:52
Появление формы при выборе пункта выпадающего списка MadMaxZZZ Элементы интерфейса 27 08.07.2016 18:46
Условие для выпадающего списка osetr Общие вопросы Javascript 6 07.11.2014 14:41
Динамическое добавление выпадающего списка В IE stepennwolf Internet Explorer 3 04.11.2011 17:36
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40