Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新分配输入字段,使用JQuery和JavaScript的简单计算器_Javascript_Jquery - Fatal编程技术网

重新分配输入字段,使用JQuery和JavaScript的简单计算器

重新分配输入字段,使用JQuery和JavaScript的简单计算器,javascript,jquery,Javascript,Jquery,我试图构建一个简单的计算器,但我想知道如何重新分配输入字段。现在我收到以下错误消息: "message": "Uncaught TypeError: res.split is not a function", 基本上,我希望在按下equal按钮时分割字符串,并在输入字段中显示结果。想象一下,输入了类似“12-3”的内容 $('.equal').on('click', () => { let res = ($('.inp').val(val

我试图构建一个简单的计算器,但我想知道如何重新分配输入字段。现在我收到以下错误消息:


"message": "Uncaught TypeError: res.split is not a function",
基本上,我希望在按下equal按钮时分割字符串,并在输入字段中显示结果。想象一下,输入了类似“12-3”的内容

$('.equal').on('click', () => {
    let res = ($('.inp').val(value))
    let spl = res.split('-')


    $('.inp').val(spl);


然而,由于我不熟悉jquery和javascript,我真的不明白为什么会收到上面的错误消息

非常感谢您的阅读,甚至帮助初学者!目前,只有按钮“1”、“2”、“3”、““-”和“=”起作用

$(文档).ready(()=>{
设numb1='1';
让值=”;
$('.1')。在('单击',()=>{
$('.inp').val(值+=numb1)
})
设numb2='2';
$('.2')。在('单击',()=>{
$('.inp').val(值+=numb2)
})
设numb3='3';
$('.3')。在('单击',()=>{
$('.inp').val(值+=numb3)
})
设负='-';
$('.min')。在('单击',()=>{
$('.inp').val(值+=减)
})
$('.equal')。在('单击',()=>{
设res=($('.inp').val(值))
设spl=res.split('-')
$('.inp').val(spl);
})
});
.grid{
显示:网格;
边框:2个黑色实心;
边界半径:5px;
宽度:40%;
身高:60%;
/*网格模板列:50%50%*/
网格模板:1fr 1fr/1fr 1fr 1fr;
/*行在前,列在后*/
利润率:10px;
}
.盒子{
宽度:60%;
背景颜色:浅灰色;
利润率:10px;
文本对齐:居中;
边界半径:5px;
}
.box gr{
宽度:60%;
背景色:暗灰色;
利润率:10px;
文本对齐:居中;
边界半径:5px;
}
.inp{
宽度:40%;
利润率:10px;
边界半径:5px;
文本对齐:居中;
}

聊天信使窗口
(
)
%
总工程师
7.
8.
9
/
4.
5.
6.
x
1.
2.
3.
-
0
.
=
+

您的代码有几个问题

let res = ($('.inp').val(value))
当您使用带有参数的
val
方法时,您正在将该值赋给目标元素。要获取输入值,请使用不带任何参数的
val

let spl = res.split('-')
最后,split方法返回一个数组,而不是字符串。例如,当您按照示例拆分字符串“12-3”时,您将得到
[“12”,“3”]

编辑:考虑到您不考虑小数,并且它是为减法而硬编码的,这应该可以:

$('.equal').on('click', () => {
    // Get string from input
    const inputValue = $('.inp').val();
    // Split the string into two numbers
    const numbers = inputValue.split('-');
    // Subtract both numbers
    const result = Number.parseInt(numbers[0]) - Number.parseInt(numbers[1]);
    // Replace the input content by the result
    $('.inp').val(result);
})

这假设
.inp
实际具有值(即:您提到的
“12-3”

用于设置输入值,您需要使用感谢做出响应。我试图实现您的更改,但不幸的是无法实现。现在;输出['12','3']正是我想要的,因为我知道如何从那里开始。也许你可以给我看看,那太棒了!如果没有,我理解,不用担心。