2014-09-23 160 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> 
相關問題