Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вставить значение переменной из списка внутри скрипта (https://javascript.ru/forum/misc/65967-kak-vstavit-znachenie-peremennojj-iz-spiska-vnutri-skripta.html)

zoldiar 18.11.2016 03:39

Как вставить значение переменной из списка внутри скрипта
 
Здравствуйте! Подскажите пожалуйста как подставить переменные в $(this).val();
Как сделать чтобы определялась переменная, а не текст rm1, rm2, rm3 ?

var rm = 0; 
var rm1 = 100; 
var rm2 = 150; 
var rm3 = 50; 

var i=1;
$("input:checked").each(function(){
var rrr = 'rm'+i++; // - проблема
$(this).val(rrr);
});

рони 18.11.2016 04:18

zoldiar,
$("input:checked").each(function(i, el){
el.value = [0,100,150,50][i]
});

join 18.11.2016 05:53

zoldiar,
Ваш код будет рабочим в таком виде.
var rm0 = 0;
var rm1 = 100;
var rm2 = 150;
var rm3 = 50;
 
$("input:checked").each(function(i){
var rrr = eval('rm' + i);
$(this).val(rrr);
});


Но лучше взять на вооружение пример рони.

zoldiar 18.11.2016 08:44

Спасибо. Вариан с
var rrr = eval('rm' + i);
больше подходит

ksa 18.11.2016 08:52

Цитата:

Сообщение от zoldiar (Сообщение 435376)
Спасибо. Вариан с
var rrr = eval('rm' + i);
больше подходит

Это не так.
Это самый "последний" вариант, что может быть использован. :)

zoldiar 18.11.2016 09:25

Ну, мне не совсем понятно
var rm1 = 100; // цена1 за услугу  в checkbox
var rm2 = 150; // цена2 за услугу  в checkbox
var rm3 = 50; //  цена3 за услугу  в checkbox

$("input").click(function() {
var sum = 0; var i=1;
$("input:checked").each(function((i, el){ // должна вызываться сама при клике. Откуда взялась el?
el.value = [0,100,150,50][i] // как я узнаю какая цена у какого checkbox? и как присвоить ее нужному checkbox?
sum += + $(this).val();
}); 
$('#total').val(sum * $('#metrazh').val());
});


Для моих знаний это сложновато :)

ksa 18.11.2016 09:28

Цитата:

Сообщение от zoldiar
как я узнаю какая цена у какого checkbox?

У чекбоксов есть атрибут value, храни сумму там... Есть еще data-атрибуты, храни в них...

В локальные переменные ты ведь как-то засунул те суммы. :)

рони 18.11.2016 09:32

zoldiar,
бред какой-то ...

ksa 18.11.2016 09:32

Цитата:

Сообщение от zoldiar
el.value = [0,100,150,50][i] // как я узнаю какая цена у какого checkbox?

В твоем посте-примере
http://javascript.ru/forum/435361-post1.html
Ты сопоставляешь с порядковым номером элемента. Вот тебе и показали другой вариант сопоставления с тем же порядковым номером.

А так, есть метод
http://jquery-docs.ru/core/index/#subject
Он позволяет узнать "порядковый номер" элемента в некоем списке...

zoldiar 18.11.2016 09:54

Цитата:

Сообщение от ksa (Сообщение 435384)
У чекбоксов есть атрибут value, храни сумму там... Есть еще data-атрибуты, храни в них...

В локальные переменные ты ведь как-то засунул те суммы. :)

Спасибо data то что нужно. ларчик оказывается открывался совсем просто :)
$("input").click(function() {
var sum = 0;
$("input:checked").each(function(){
$(this).val($(this).data("price") * $('#metrazh').val());
sum += + $(this).val();
}); 
});


Часовой пояс GMT +3, время: 00:34.