Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2014, 15:20
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Получить массив value из input
Привет, братцы! От чего не удаётся получить массив элементов <input> и тут же переписать его на значения value в них? Можно ли в данном случае обойтись одним массивом?
q=document.getElementsByName("as");
for (var i=0; i<q.length; i++){
q[i]=parseInt(q[i].value);
}
alert(q); //хочецца 6,7

<input value="6" name="as">
<input value="7" name="as">
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2014, 15:26
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

for (var i = q.length-1; i >= 0; i--){
  q[i].outerHTML = parseInt(q[i].value);
}


Или если имеется ввиду то, что надо сделать массив из значений инпутов, то создавай массив и клади в него значения, потому что q - это не массив, а nodeList.

Последний раз редактировалось jsnb, 15.04.2014 в 15:31.
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2014, 15:30
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,199

getElementsBy возвращает не массив, а массиво-подобный объект NodeList, причём живой(при удалении\добавлении элементов он изменится автоматически). Так что вам придётся заводить отдельный массив, либо приводить NodeList к массиву:
q = Array.prototype.slice.call(document.getElementsByName("as"));
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2014, 15:44
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Прикольно, братцы, спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2014, 17:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

var q = Array.map(document.getElementsByName("as"), function (item) {
    return parseInt(item.value, 10);
});
Только нужен Array.map А так, по старинке:
var q = Array.prototype.map.call(document.getElementsByName("as"), function (item) {
    return parseInt(item.value, 10);
});
Ответить с цитированием
  #6 (permalink)  
Старый 15.04.2014, 22:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,199

Sweet, думается мне что раз уж есть Array.prototype.map то и Array.map должен быть.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 15.04.2014, 22:23
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Aetae, Chrome 34:
Array.map === undefined // true
Ответить с цитированием
  #8 (permalink)  
Старый 15.04.2014, 23:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Aetae
Sweet, думается мне что раз уж есть Array.prototype.map то и Array.map должен быть.
Array.prototype.map это не Object.prototype.map, следовательно у конструктора Array не может быть метода map так как Array является наследником Object но никак не наследником Array
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #9 (permalink)  
Старый 15.04.2014, 23:10
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Дженерики типа Array.map, Array.filter и т.д. есть только в Firefox
Ответить с цитированием
  #10 (permalink)  
Старый 15.04.2014, 23:14
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Octane
Дженерики типа Array.map, Array.filter и т.д. есть только в Firefox
Видимо в ФФ методы класса Array дополнительно объявили как статические методы)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить массив значений MadChild Общие вопросы Javascript 4 10.06.2013 22:25
Как получить javasript массив из php? dima_tr AJAX и COMET 6 01.02.2013 01:37
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 18:27
Input - получить текст и сделать редирект hell100 Общие вопросы Javascript 9 28.02.2012 18:06
Ассоциативный и обычный массив. Почему не получается получить свойство? jsuse Общие вопросы Javascript 10 04.12.2011 20:14