Javascript.RU

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

Выборка чекбоксов и из значений
Здравствуйте. Не могу разобраться в чем дело (

есть вот такой html
<input type="checkbox" value="1000" /> 
<input type="checkbox" value="2000" /> 
<input type="checkbox" value="3000" />


и есть вот такой код js (здесь использовано jQuery)
var checkbox = $('input[type=checkbox]:checked'); 
  for(i=0; i<checkbox.length; i++){
   var x = checkbox[i].val();
   alert(x);
  }


Код должен диалоговым окном выводить значение каждого нажатого чекбокса.

Ведь вроде все и правильно, как я знаю в переменой checkbox должен быть массив а если это массив то и доступ должен быть к нему типа array[0]. Цикл работает если убрать
var x = checkbox[i].val();
, значит наверно именно там и ошибка, но вот где понять ну никак не могу.


ПОМОГИТЕ, ПОЖАЛУЙСТА !!! )
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2013, 19:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<input type="checkbox" value="1000" checked="" />
<input type="checkbox" value="2000" />
<input type="checkbox" value="3000" checked />
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var checkboxes = $('input[type=checkbox]:checked');
for (var i=0; i < checkboxes.length; i++){
   var x = checkboxes[i].value;
   alert(x);
}
</script>


Пояснения:
1) функция $() возвращает объект, похожий на массив (можно обращаться по числовым ключам, и имеется свойство length, указывающее количество элементов). Сам объект имеет интересные методы вроде val(), html(), hide() и прочие (смотри api.jquery.com). Сами элементы "массива" - это голые DOM-элементы, не имеющие этих свойств.
2) Перед i забыл ключевое слово var, но это не критично
3) Коллекции должны быть именованы множественным числом (это касается стиля именования и не влияет конечно же на результат).


Ну и на последок, jquery-way:

var $checkboxes = $('input[type=checkbox]:checked');
$checkboxes.each(function(){
    var x = this.value;
    alert(x);
});
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2013, 21:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от prudcky
var x = checkbox[i].val();
вариант...
<input type="checkbox" value="1000" checked="" />
<input type="checkbox" value="2000" />
<input type="checkbox" value="3000" checked />
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var checkboxes = $('input[type=checkbox]:checked');
for (var i=0; i < checkboxes.length; i++){
   var x = checkboxes.eq(i).val();
   alert(x);
}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 23.10.2013, 00:13
Аватар для prudcky
Интересующийся
Отправить личное сообщение для prudcky Посмотреть профиль Найти все сообщения от prudcky
 
Регистрация: 13.07.2013
Сообщений: 11

Спасибо Рони, работает как и хотел только вот так и не понял что это за eq(i) ?
Ответить с цитированием
  #5 (permalink)  
Старый 23.10.2013, 00:16
Аватар для prudcky
Интересующийся
Отправить личное сообщение для prudcky Посмотреть профиль Найти все сообщения от prudcky
 
Регистрация: 13.07.2013
Сообщений: 11

Сообщение от danik.js Посмотреть сообщение
<input type="checkbox" value="1000" checked="" />
<input type="checkbox" value="2000" />
<input type="checkbox" value="3000" checked />
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var checkboxes = $('input[type=checkbox]:checked');
for (var i=0; i < checkboxes.length; i++){
   var x = checkboxes[i].value;
   alert(x);
}
</script>


Пояснения:
1) функция $() возвращает объект, похожий на массив (можно обращаться по числовым ключам, и имеется свойство length, указывающее количество элементов). Сам объект имеет интересные методы вроде val(), html(), hide() и прочие (смотри api.jquery.com). Сами элементы "массива" - это голые DOM-элементы, не имеющие этих свойств.
2) Перед i забыл ключевое слово var, но это не критично
3) Коллекции должны быть именованы множественным числом (это касается стиля именования и не влияет конечно же на результат).


Ну и на последок, jquery-way:

var $checkboxes = $('input[type=checkbox]:checked');
$checkboxes.each(function(){
    var x = this.value;
    alert(x);
});
Кстати, Даник - как я знаю то в цикле for в переменой "i" ключевое слово "var" указывать не нужно так как это особенность данного цикла )
Ответить с цитированием
  #6 (permalink)  
Старый 23.10.2013, 00:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от prudcky
что это за eq(i) ?
Цитата:
Возвращает элемент, идущий под заданным номером в наборе выбранных элементов. Метод имеет один вариант использования:

.eq(index):
Ответить с цитированием
  #7 (permalink)  
Старый 23.10.2013, 04:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от prudcky
Кстати, Даник - как я знаю то в цикле for в переменой "i" ключевое слово "var" указывать не нужно так как это особенность данного цикла )
Кто тебе такую глупость сказал? В Strict-режиме объявление переменных без var выдает ошибку, вот и проверим:
(function(){
"use strict";
for (i = 0;0;);
})();


(function(){
for (var i = 0;0;);
})();
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка значений option select'a Юрай jQuery 4 05.03.2013 12:27
Проверка chekbox масива и сложения их значений ss18EXEL Общие вопросы Javascript 12 19.12.2012 10:03
Умножение численных значений формы ввода FastSP Общие вопросы Javascript 8 08.04.2012 20:45
Чекбокс (переключатель группы чекбоксов) DVNSA Общие вопросы Javascript 6 15.08.2011 14:38
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48