Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2014, 02:14
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

как разложить массив при выводе в селект
есть список значений разделенный запятой = url, (париж, лондон) мне надо вывести его значения в селект
$('.result_block').append('<div class="competitors"><div class="demands"><select><option>'+url+'</option></select></div></div>');

так когда пишу естественно выводятся оба значения списка в одном теге options, а как разложить чтобы каждое значение выводилось в отдельном теге options
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2014, 02:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

url - у тебя массив?

var $select = $('<select>');
var options = $.map(url, function(item) {
    return new Option(item);
});
$select.append(options);

Дальше сам.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2014, 02:43
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

url у меня список через запятую, а что такое $.map
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2014, 02:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от imediasun1
что такое $.map
http://api.jquery.com/jquery.map/

Сообщение от imediasun1
url у меня список через запятую
Значит разбиваешь в массив по запятой: url.split(',')
Если возле запятой могут быть пробелы, то тримишь их через $.trim() (ибо String.prototype.trim нету в старых браузерах)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2014, 03:11
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Извините за беспокойство но я сделал так
var $select = $('<select>');
	var options = $.map(url, function(item) {
	    return new Option(item);
	});
	$select.append(options);
$('.result_block').append('<div class="demands">'+$select+'</div></div>');

и мне просто выводится object Object
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2014, 03:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Потому что $select - это объект. При конкатенации строк, объект преобразуется в строку как [object Object].
Зацени:
alert({});
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 05.03.2014, 03:37
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

как же тогда конкатенировать и вставить этот селект в html?
а вот так пустой селект на выходе
var options = $.map(url, function(item) {
	    return new Option(item);
	});
	
	
$('.result_block').append('<div class="demands"><select>'+options+'</select></div>');

Последний раз редактировалось imediasun1, 05.03.2014 в 03:41.
Ответить с цитированием
  #8 (permalink)  
Старый 05.03.2014, 03:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

imediasun1,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src='http://code.jquery.com/jquery-latest.js'></script>
  <script>
  $(function ()
{

var url = "париж, лондон", select = $('<select/>');
$.each(url.split(','),function() {
    $('<option/>', {
        val:  this,
        text: this
    }).appendTo(select);
});

$('.result_block').append(select);
})


  </script>
</head>

<body>
   <div class="result_block"></div>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 09.03.2014, 15:01
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

сделал так как рони указал, спасибо все работает, только вот подскажите как обозначить что первое значение selected в такой подаче
Ответить с цитированием
  #10 (permalink)  
Старый 09.03.2014, 15:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
val:  this
Необязательно, если value совпадает с текстом.
Сообщение от imediasun1
первое значение selected
Вариант:
select.prop('selectedIndex', 0);
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересный случай с кодировкой, при выводе из БД первая строка в неправ. кадеровкой slaider jQuery 1 15.02.2014 21:44
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как задать изменение src при прокрутке chandler Элементы интерфейса 3 12.01.2012 01:23
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Как лучше сделать глобальный массив skyfish AJAX и COMET 4 17.02.2009 18:05