2014-09-23 113 views
-3

我的JavaScript代码在jsfiddle中工作,但它在我的浏览器中不起作用。 任何人都可以帮助我。提前致谢。 这里是我的html文件代码在jsFiddle中工作,但不在我的浏览器中

<!DOCTYPE html> 
<head> 
<title> BMI Calculator </title> 
<meta charset= "UTF-8"> 
<link rel="stylesheet" href="stylev1.cs"> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="jsv1.js" type="text/javascript"> </script> 
</head> 
<body> 
<div> 
Height (cm): 
<input type="range" id="height" onchange="this.setAttribute('value',this.value);" min="100" max="250" step="0.1" value="0" /> 

<br> 
Weight (kg): 
<input type="range" id="weight" onchange="this.setAttribute('value',this.value);" min="0" max="200" step="0.1" value="0" /> 

<br> 
Your BMI : 
<div id="displaybmi" value="" > </div> 

</div> 

</body> 

JavaScript文件:

<script> 
jQuery(document).ready(function(($("#height")||("#weight")).change(function(e) {  
        var height, weight; 
        height = parseFloat($('#height').val()); 
        height = height/100; 
        weight = parseFloat($('#weight').val()); 

        $('#displaybmi').html(calbmi(weight,height)); 

        function calbmi(){ 

        var bmi = weight/(height*height); 
        return bmi; 

       } 


     }))); 

http://jsfiddle.net/wm81/935fnmyx/9/

+2

''平变化= “this.setAttribute( '值',THIS.VALUE);”'',为什么,只是为什么呢? – kay 2014-09-23 10:26:10

+1

'($(“#height”)||(“#weight”))。change'不正确。它相当于'($(“#height”))。change',因为'||'返回第一个真实的参数。如果你想绑定到多个选择器,使用'$(“#height,#weight”)。change'。 – Barmar 2014-09-23 10:26:26

+0

请比“不工作”更具体。它应该做什么,它是如何失败的?你在Javascript控制台中看到任何错误吗? – Barmar 2014-09-23 10:27:36

回答

0

您的JavaScript/jQuery有相当多的错误。

您需要了解:

  • 回调 - 你已通过某种或参数jQuery的ready回调。
  • jQuery selectors - 你没有使用实际的jQuery选择器#weight;它缺少美元符号,你可以在一个选择器中选择其中的任何一个 - 就像CSS一样。
  • 变量scope和函数参数 - 您已将参数传递给calbmi函数,但签名中没有实际参数。它只是使用本地作用域中相同名称的变量。

请参阅this fiddle并比较差异。

JS

$("#height, #weight").on('change', function() { 

    var height, weight; 
    height = parseFloat($('#height').val()); 
    height = height/100; 
    weight = parseFloat($('#weight').val()); 
    var bmi = calbmi(weight, height); 

    $('#displaybmi').html(bmi); 

}); 


function calbmi(weight, height) { 

    var bmi = weight/(height * height); 
    return bmi; 

} 

HTML

<div> 
    Height (cm): 
    <input type="range" id="height" min="100" max="250" step="0.1" value="0" /> 
    <br>Weight (kg): 
    <input type="range" id="weight" min="0" max="200" step="0.1" value="0" /> 
    <br>Your BMI : 
    <div id="displaybmi"></div> 
</div> 
相关问题