JQuery умножение и сложение всех значений полей с определенным классом - PullRequest
0 голосов
/ 07 июля 2011

У меня есть несколько <input> элементов, которые выглядят так:

<input id="hosts" name="250" class="hostselector" type="number" min="0" max="999" value="0" />

Я хотел бы умножить значение (которое вводит пользователь) на значение, которое я сохраняю в имени.

Теперь на странице есть несколько элементов, все с class="hostselector".Я хотел бы получить сумму всех значений, в некотором смысле:

(value * name) + (value * name) + .... every single element with that class.

Как бы я это сделал с помощью jquery?

Ответы [ 3 ]

4 голосов
/ 07 июля 2011
var total = 0;
$(".hostselector").each(function() {
    total+= parseInt(this.value, 10) * parseInt($(this).attr("name"), 10);
});

Это циклически перебирает все элементы с классом .hostselector, умножает текущее значение на значение атрибута name (который является строкой, отсюда и использование parseInt) и сохраняет промежуточный итог

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}}}}}
1 голос
/ 07 июля 2011

Это должно выглядеть примерно так:

var total = 0;
$('.hostselector').each(function() {
    total += parseInt($(this).val(), 10) * parseInt($(this).attr('name'), 10);
})

"total" var содержит число, которое вы ищете.

Часть parseInt более или менее необязательна, javascript все равно вернет вам правильный результат без него, но, поскольку .val () и .attr () возвращают вам строки, это правильная вещь.

0 голосов
/ 07 июля 2011

попробуйте это:

    var sum = 0;   
    $.each('.hostselector', function(i ,item){
    sum +=  $(item).val();
    // or sum += $(item).attr("Your_Attribute_here");
    });
    alert(sum);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...