If it's a div, val() will not get you anything. Use text().

$("#factor").change(function() {
    var val = this.value;  // value of select
    $(".num").each(function() {
        $(this).text( parseInt($(this).text()) * parseInt(val) );
    });
});

On Oct 13, 10:07 am, Avik Basu <avikb...@gmail.com> wrote:
> I would like to use JQuery to iterate through a set of <div> elements
> that have the same class and scale each value according to a value
> selected from a dropdown box.  For example,
>
> <select id="factor">
> <option value="1">1</option>
> <option value="2">2</option>
> <option value="3">3</option>
> </select>
>
> <div class="num">100</div>
> <div class="num">1000</div>
> <div class="num">10000</div>
>
> If "2" was the scaling factor chosen, then the divs would look like:
>
> <div class="num">200</div>
> <div class="num">2000</div>
> <div class="num">20000</div>
>
> This is the jQuery script that attempts to do the iteration and
> scaling, but I keep get NaNs.  I suspect it has something to do with
> my use of the .each iterator or the $(this) notation, but have not
> been able to solve it.
>
> <script>
> $("#factor").change(function(){
>         $(".num").each(function(){
>                 $(this).html(parseFloat($(this).val()) * parseFloat(jQuery
> ("#factor").val()));
>         });});
>
> </script>

Reply via email to