2016-10-21 3 views
-2

Я новичок в Javascript после изучения программирования на Java, поэтому я попытался определить простой объект в Javascript на HTML-странице, но код не покажет мне результаты вычислений (IE not области распространения, периметры и размер прямоугольника). Кажется, нет грамматической ошибки.Объект Javascript, не отображающий текст

<!DOCTYPE html> 

<script language ="JavaScript"> 

      Rectangle = function(b,h) { 

        this.base = parseInt(b); 
        this.height = parseInt(h); 

        this.area = b*h; 
        this.perimeter = (b+h)*2; 
        this.diagonal = sqrt(b*b+h*h); 

        } 

      </script> 

    </head> 

    <body> 

      <h3>Rectangles!</h3> 
      <b>First rectangle</b><br><br> 
      Base: <input type = "number" id = "base1" value = "0"> 
      Height: <input type = "number" id = "height1" value = "0"> 
      <br><br> 
      <b>Second rectangle</b><br><br> 
      Base: <input type = "number" id = "base2" value = "0"> 
      Altezza: <input type = "number" id = "height2" value = "0"> 

      <br><br><br> 
      <b>Data about first rectangle:</b><br><br> 
      <t>Perimeter is <div id = "p1"> </div> 
      <t>Area is <div id = "a1"> </div> 
      <t>Diagonal is <div id = "d1"> </div> 
      <br><br> 
      <b>Data about second rectangle:</b><br><br> 
      <t>Perimeter is <div id = "p2"> </div> 
      <t>Area is <div id = "a2"> </div> 
      <t>Diagonal is <div id = "d2"> </div> 
      <br><br> 
      <div id = "compare"> </div> 

      <script language = "JavaScript"> 
        A = new Rectangle(document.getElementById("base1").value,document.geteElementById("altezza1")); 
        B = new Rectangle(document.getElementById("base2").value,document.geteElementById("altezza2")); 
        document.getElementById("p1").innerHTML = A.perimeter; 
        document.getElementById("a1").innerHTML = A.area; 
        document.getElementById("d1").innerHTML = A.diagonal; 
        document.getElementById("p2").innerHTML = B.perimeter; 
        document.getElementById("a2").innerHTML = B.area; 
        document.getElementById("d2").innerHTML = B.diagonal; 
        if A.area > B.area document.getElementById("compare").innerHTML = "First rectangle is bigger"; 
        if A.area < B.area document.getElementById("compare").innerHTML = "Second rectangle is bigger"; 
        else    document.getElementById("compare").innerHTML = "Rectangles are equal"; 
        </script> 

     </body> 

</html> 
+1

Есть несколько синтаксических ошибок в коде. Лучше проверить консоль на наличие ошибок. Конструкции if/else неверны и 'geteElementById', который называется' getElementById'. – Tyr

+2

У вас нет элементов с идентификаторами 'altezza1' и 2 –

+0

Отсутствие круглых скобок вокруг условий if. У вас определенно есть синтаксические ошибки в вашей консоли –

ответ

0

Прежде всего изменения

this.diagonal = sqrt(b*b+h*h); 

в

this.diagonal = Math.sqrt(b*b+h*h); 

Во-вторых

geteElementById 

к (слишком много "е")

getElementById 

И МФС неправильно. Вместо

if A.area > B.area document.getElementById("compare").innerHTML = "First rectangle is bigger"; 
        if A.area < B.area document.getElementById("compare").innerHTML = "Second rectangle is bigger"; 
        else    document.getElementById("compare").innerHTML = "Rectangles are equal"; 

написать что-то вроде этого

document.getElementById("compare").innerHTML = (A.area > B.area) ? "First rectangle is bigger" : ((A.area < B.area) ? "Second rectangle is bigger" : "Rectangles are equal") 

Также - Вы выполнить скрипт только один еще до поля заполнены. Сделайте это при щелчке/отправке/изменении значения.

И как ребята, указанные выше, используйте инструменты отладки браузера. Вкладка «Консоль» в этих инструментах сообщает вам все, что вам нужно знать о ваших ошибках.

0

Был много опечаток и неправильно синтаксиса в коде, попробуйте следующее:

function Rectangle(b,h) { 

        this.base = parseInt(b); 
        this.height = parseInt(h); 

        this.area = b*h; 
        this.perimeter = (b+h)*2; 
        this.diagonal = Math.sqrt(b*b+h*h); 
console.log(this.perimeter); 
        } 

      console.log(document.getElementById("base1").value); 

var A = new Rectangle(document.getElementById("base1").value,document.getElementById("height1").value); 
var B = new Rectangle(document.getElementById("base2").value,document.getElementById("height2").value);   document.getElementById("p1").innerHTML = A.perimeter; 
     document.getElementById("a1").innerHTML = A.area; 
        document.getElementById("d1").innerHTML = A.diagonal; 
        document.getElementById("p2").innerHTML = B.perimeter; 
        document.getElementById("a2").innerHTML = B.area; 
        document.getElementById("d2").innerHTML = B.diagonal;   
if (A.area > B.area) document.getElementById("compare").innerHTML = "First rectangle is bigger"; 
if (A.area < B.area) document.getElementById("compare").innerHTML = "Second rectangle is bigger"; 
    else    document.getElementById("compare").innerHTML = "Rectangles are equal";     
+0

Все еще не работает. И я клянусь, что проверил консоль, я, должно быть, сделал некоторые ошибки при переводе на английский, потому что я написал это на другом языке сначала – Roc

+0

(он дает NaN в результате) – Roc

+0

NaN -> Не номер, поэтому вы можете проверить свой ввод вы переходите к функции Rectangel, var A = новый Rectangle (document.getElementById ("base1"). value, document.getElementById ("height1"). value); var B = новый Rectangle (document.getElementById ("base2"). Value, document.getElementById ("height2"). Value); , Проверьте правильность значений – Pranay

Смежные вопросы