Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

JQuery собираю калькулятор

Razmik Hovhannisyan Ученик (62), закрыт 3 года назад
$(".ket").click(function(){
let inp = document.getElementById("result").value.indexOf(".")
let res = $("#result").val()
let ket = $(this).html()
if(inp === 1){ // этот способ работает но не так как надо
return $("#result").val(res)
}
$("#result").val(res+ket)
})

надо чтобы . точка поставилась один раз
Лучший ответ
Elepsis Eclipse Гений (64066) 4 года назад
indexOf возвращает НОМЕР позиции, в которой впервые встречается указанный символ.

"123.1".indexOf("."); // выведет 3
"0.1".indexOf("."); // выведет 1

И возвращается -1, если совпадений нет.

Нужно

if( inp > -1 ) { //...
_______________________

let inp = document.getElementById("result").value;
let res = $("#result").val();

А ничо, что это абсолютно одно и то же?) Одно получено через обычный JS, другое методами jQ. Но оба хранят одну и ту же строку.
_______________________________

$(".ket").click(function(){
  let $res = $('#result');
  let val = $res.val();
  let ket = $(this).html();

  if( val.contains(".") ) return; // прерывает выполнение функции.

  // Если не прервалось, значит тыкали не на точку:

  $res.val( val + ket );
});

_____________________

contains более современный метод поиска подстроки, и используется там, где нужно просто получить true / false, а конкретная позиция не интересует.

Если переменная ссылается на jQuery-объект, полезно его называть через $... чтобы знать, что в ней хранится, даже если код станет очень большим.

А значения переменных val и ket хоть и получены через jQuery-методы, но это обычные JS-строки.
Razmik HovhannisyanУченик (62) 4 года назад
Uncaught TypeError: val.contains is not a function
Elepsis Eclipse Гений (64066) Упс. Я перепутал) val.includes(".") или val.indexOf(".") > -1 contains в другом месте.
Остальные ответы
Саня Семенов Оракул (60424) 4 года назад
Калькулятор нужно делать так
Elepsis EclipseГений (64066) 4 года назад
Это самый легкий путь, который вообще ничему не учит... )) И полезен разве что для себя, если нужно быстро что-то считать.
Саня Семенов Оракул (60424) калькулятор на JS бесполезная вещь по определению, поэтому и задание сделано на отъепись
Похожие вопросы