Добавить текст ко всем членам класса jQuery

0

У меня есть несколько полей ввода класса "inputbox". Я хотел бы добавить ".00" в конец каждого из них. Я попробовал это:

    $('.inputbox').val($(this).val()+".00");

Но $ (this) не возвращает никакого значения, поэтому я просто получаю ".00" во всех коробках. Любая помощь в том, как получить значение из каждого из этих полей ввода, чтобы я мог добавить к нему, будет с благодарностью.

Теги:

2 ответа

1
Лучший ответ

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

$('.inputbox').val(function(_, val) { return val + ".00" });
  • 0
    Не могли бы вы объяснить, что происходит? Я все еще довольно новичок в jQuery / Javascript, и я не совсем понимаю, как это работает.
  • 0
    @ user3413723 - val() может получить и установить значение, а также принимает дополнительную функцию обратного вызова, которую я здесь использую, и внутри этого обратного вызова вторым аргументом является текущее значение, в данном случае val и Вы можете добавить что-то к этому и вернуть его, и оно будет установлено как новое значение. Это довольно изящно, и это также объясняется в документации для val () .
0

Селекторы jQuery возвращают массивы. Но функция val() не может использоваться для массивов, ее можно использовать для одного элемента. Таким образом, вы можете использовать .each() jQuery:

$('.inputbox').each(function(){
   $(this).val($(this).val()+".00");
});
  • 0
    Этот способ тоже отлично работает; Я хотел бы проверить их обоих! Я проверил другой, потому что он более специфичен для функции val (). Я думаю, этот будет полезен и во многих других случаях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню