2009-05-28 4 views
0

Необходимо выбрать опцию выпадающего списка SELECT и найти, есть ли какое-либо из значений целые числа, а затем добавить значение .00 в значение списка. необходимо также изменить значение.jQuery найти целое число и добавить десятичное число

<select> 
    <option value="1">1</option> 
    <option value="1.99">1.99</option> 
    <option value="2.99">2.99</option> 
    <option value="4">4</option> 
</select> 

Заранее спасибо за любую помощь по этому

+0

Это действительно не вопрос JQuery, его стандартный javascript. JQuery можно использовать для простого извлечения значений из поля выбора, но это не имеет никакого отношения к вычислению. – Soviut

+0

Не совсем уверен, что вы делали, но второе решение не округляет числа ... по крайней мере, не с данными, которые у вас там есть ... –

+0

Мне просто нужно добавить .00, если это номер целое число 0-9 не нужно округлять число. Благодаря! –

ответ

6

Не вполне уверен, что это лучший способ, но он работает:

$('option', '#myselect').each(function() { 
    if($(this).val() == parseInt($(this).val(), 10)) { 
     var x = $(this).val() + '.00'; 
     $(this).val(x).text(x); 
    } 
}); 

Demo.

На второй мысли, вы также можете сделать это с помощью toFixed, который чище:

$('option', '#myselect').each(function() { 
    var x = Number($(this).val()).toFixed(2); 
    $(this).val(x).text(x); 
}); 

Demo.

+0

Мне нравится первое решение, но не работает с перезагрузкой страницы, когда значения заполняются из базы данных. –

+0

BTW Я просмотрел ваше второе решение и, кажется, округляет число. Просто хотел уточнить, так ли это? –

+0

Как это использовать для двух и трехзначных чисел? 10 должно быть 10.00 и 100 должно быть 100.00 –

1

Если вы планируете использовать строку форматирования много, я рекомендую получить плагин:

http://code.google.com/p/jquery-utils/wiki/StringFormat

тогда было бы так же легко, как: $ .format («{а: .2f}» , {a: '1'})