Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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
Javascript JS——不存在的类型';t处理输入| document.getElementById问题_Javascript_Document_Getelementbyid_Typeof_Let - Fatal编程技术网

Javascript JS——不存在的类型';t处理输入| document.getElementById问题

Javascript JS——不存在的类型';t处理输入| document.getElementById问题,javascript,document,getelementbyid,typeof,let,Javascript,Document,Getelementbyid,Typeof,Let,我需要寻求帮助来解决两个问题 保存在let中的document.getElementById.value与保存在其他let中的innerHTML不兼容。我看到了一些类似的线索,但它们没有帮助我 当我需要按typeof检查数字时,会出现一个问题,它只是在JS看不到的情况下运行 这是我的密码。谢谢你的建议和帮助 函数工资(){ 让输入=document.getElementById('annualInput')。值; 让output=document.getElementById('resultM

我需要寻求帮助来解决两个问题

  • 保存在
    let
    中的
    document.getElementById.value
    与保存在其他
    let
    中的
    innerHTML
    不兼容。我看到了一些类似的线索,但它们没有帮助我

  • 当我需要按
    typeof
    检查数字时,会出现一个问题,它只是在JS看不到的情况下运行

  • 这是我的密码。谢谢你的建议和帮助

    函数工资(){
    让输入=document.getElementById('annualInput')。值;
    让output=document.getElementById('resultMonthly').innerHTML;
    //它不起作用,但可以与纯document.getElementById('result').innerHTML=input一起使用;
    输出=输入;
    /*  
    如果(输入!=''){
    //即使使用字符串和数字,此if也不起作用
    如果(输入类型=='number')
    document.getElementById('result').innerHTML=input;
    }否则{
    document.getElementById('result').innerHTML='Please,键入您的年工资';
    }
    */
    //年工资相差12个月
    让resultMonthly=input/12;
    let showMonthly='您的月工资:'+每月结果。toFixed(2);
    //月工资相差20天
    让resultDaily=resultMonthly/20;
    让showDaily='您的日工资:'+结果daily.toFixed(2);
    //每日工资差8小时
    设resultHourly=resultDaily/8;
    让showHourly='您的小时工资:'+resultHourly.toFixed(2);
    如果(输入!=''){
    document.getElementById('resultMonthly')。innerHTML=showMonthly+'$';
    document.getElementById('resultDaily')。innerHTML=showDaily+'$';
    document.getElementById('resultHourly')。innerHTML=showHourly+'$';
    }否则{
    document.getElementById('resultMonthly')。innerHTML='请键入您的年工资';
    }
    }
    
    工资应用程序
    问题应用程序
    WageApp
    

    这是一个按年、月、日和小时计算工资的简单应用程序


    你的年薪 我们永远不会和别人分享你的工资。 检查
    第1期:

    output = input;
    
    if (typeof input == 'number')
    
    这不起作用,因为
    output
    没有引用该元素,而是存储该元素的innerHTML

    解决问题1:

    output = input;
    
    if (typeof input == 'number')
    
    您的评论是一个很好的开始:

    document.getElementById('result').innerHTML = input;
    
    或者,您可以将元素存储到变量中,然后设置innerHTML:

    var result = document.getElementById('result');
    // later on
    result.innerHTML = input;
    

    第二期:

    output = input;
    
    if (typeof input == 'number')
    
    这永远不会是真的,因为元素的value属性中存储的值总是字符串

    解决问题2:

    output = input;
    
    if (typeof input == 'number')
    
    您可以通过多种方法检查输入是否为数字的字符串版本,其中一种方法是测试字符串是否为NaN:

    if (!isNaN(input))
    

    由于有很多方法可以进行此检查,我会四处寻找适合您的用例的方法。

    第1期:

    output = input;
    
    if (typeof input == 'number')
    
    这不起作用,因为
    output
    没有引用该元素,而是存储该元素的innerHTML

    解决问题1:

    output = input;
    
    if (typeof input == 'number')
    
    您的评论是一个很好的开始:

    document.getElementById('result').innerHTML = input;
    
    或者,您可以将元素存储到变量中,然后设置innerHTML:

    var result = document.getElementById('result');
    // later on
    result.innerHTML = input;
    

    第二期:

    output = input;
    
    if (typeof input == 'number')
    
    这永远不会是真的,因为元素的value属性中存储的值总是字符串

    解决问题2:

    output = input;
    
    if (typeof input == 'number')
    
    您可以通过多种方法检查输入是否为数字的字符串版本,其中一种方法是测试字符串是否为NaN:

    if (!isNaN(input))
    

    由于有很多方法可以进行此检查,我会四处寻找适合您的用例的方法。

    innerHTML
    value
    是一个带有getter和setter的“神奇”属性。你不能直接参考他们。您可以存储不会更新的当前值,也可以存储节点以使用其魔法属性


    输入值总是字符串。您必须使用一元运算符
    +
    将其强制转换为数字,然后使用
    数字测试结果。isNaN()
    innerHTML
    是一个带有getter和setter的“神奇”属性。你不能直接参考他们。您可以存储不会更新的当前值,也可以存储节点以使用其魔法属性


    输入值总是字符串。必须使用一元运算符
    +
    将其强制转换为数字,然后使用
    number.isNaN()

    什么是
    type=“annualData”
    ?文本框的类型是字符串,而不是数字。普通输入元素的值是stringwhat is
    type=“annualData”
    ?文本框的类型是字符串,而不是数字。普通输入元素的值是StringThank类型,感谢您的快速响应。我有一个问题要你解决第二个问题。我将if更改为您的if(!isNaN(input)),但它仍然接受字符串。如何更改:if(typeof input=='number')只接受数字?使用
    input=+input
    将字符串转换为数字。如果他不能,那将是
    NaN
    @Adam,这取决于用户能否使用逗号(例如:
    1234.12
    )?因为如果他们可以,不要尝试强制(
    +'1234'
    是NaN)。@Kulvar问题是我不希望
    NaN
    ,而是希望运行if代码的最后一部分,即
    else{document.getEleme>