0

I have the following

var invest401_2 = $("input[type=hidden][name=invest401_2]").val();  
var invest401_3 = $("input[type=hidden][name=invest401_3]").val();  
var invest401_4 = $("input[type=hidden][name=invest401_4]").val();  
var invest401_5 = $("input[type=hidden][name=invest401_5]").val();  

var invest401_0label = Math.round(((invest401_0/balance401)* percent401kb));    
var invest401_1label = Math.round(((invest401_1/balance401)* percent401kb));    
var invest401_2label = Math.round(((invest401_2/balance401)* percent401kb));    
var invest401_3label = Math.round(((invest401_3/balance401)* percent401kb));    
var invest401_4label = Math.round(((invest401_4/balance401)* percent401kb));
var invest401_5label = Math.round(((invest401_5/balance401)* percent401kb));

$("#invest401_0").text(invest401_0label+'%');
$("#invest401_1").text(invest401_1label+'%');
$("#invest401_2").text(invest401_2label+'%');
$("#invest401_3").text(invest401_3label+'%');
$("#invest401_4").text(invest401_4label+'%');
$("#invest401_5").text(invest401_5label+'%');

Having the count total - ex. 5

How do a throw this into a for each loop.

I tried but didnt work.

4 Answers 4

1

Try this

var invest401_label = [];
var invest401 = [];
for(i=0;i<6;i++)
{
    invest401[i] = var invest401_2 = $("input[type=hidden][name=invest401_"+i+"]").val();
    invest401_label[i] = Math.round(((invest401[i]/balance401)* percent401kb));
    $("#invest401_"+i).text(invest401_label[i]+'%');
}
Sign up to request clarification or add additional context in comments.

Comments

1

Take a look at $.each. http://api.jquery.com/jQuery.each/

If you add a class to this elements $("input[type=hidden][name=invest401_2]").val(); you can get them as an array and use each.

If you add a class named elements. Use the following example.

$('.elements').each(function(i, element) {
    var invest = $(element).val();
    $(element).val(Math.round((invest/balance401)* percent401kb));
});

Or

var $elements = $('.elements');
for(var i in $elements) {
    var element = $elements[i];
    element.val(Math.round((element.val()/balance401)* percent401kb));
}

Comments

0

Assuming there is only #invest401_0 - 5

$("[id=^invest401_]").each(function(){
    $(this).text(Math.round((($("input[type=hidden][name="+this.id+"]").val()/balance401)* percent401kb))+'%');
});

Reference

http://api.jquery.com/jQuery.each/

http://api.jquery.com/category/selectors/

Comments

0

Although this may not work ( I'm currently writing this from an ie8 machine) this /should/ do what you want correctly and replaces all of the code you have there

for (i = 0; i < $('.hiddenelems').size(); i++) {
    $('.hiddenelems:eq('+i+')').text(Math.round((($('.hiddenelems:eq('+i+')').val()/balance401)* percent401kb))+'%');
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.