0

javascriptやhtmlタイプのものは非常に新しいものです。ユーザーからの入力を使用して、それをテーブルに出力する簡単な例を作成したかっただけです。しかし、ウィンドウプロンプトが実際に表示されるのに問題があります。私が間違っていることは非常に明白なことだと思いますが、現在は見ていません...私は学校でクラスを受講していますが、これは宿題ではなく、自分で行っている演習です。

これはwhileループのあるものですか?彼らが別のことを述べるまで、私がどのようにユーザーにプロンプ​​トを出し続けるべきかについての提案はありますか?

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Mileage Record</title>
<style type = "text/css">
    table {
        width:300px;
        border-collapse:collapse;
        background-color:lightblue;
        }
    table, td, th {
        border: 1px solid black;
        padding: 4px;
        }
    th {
        text-align: left;
        color: white;
        background-color: darkblue
        }
    tr.oddrow {
        background-color: white;
        }
</style>

<script>
    var milesDriven;
    var gallonsUsed;
    var mpg;
    var anyMore;

    document.writeln("<table>");
    document.writeln("<thead><tr><th>Miles Driven</th>");
    document.writeln("<th>Gallons Used</th>");
    document.writeln("<th>MPG</th>");
    document.writeln("</tr></thead><tbody>");

    while (anyMore == true) {
        milesDriven = window.prompt("How many miles did you drive?");
        gallonsUsed = window.prompt("How many gallons did you use?");
        mpg = milesDrive/gallonsUsed;
        document.writln("<tr><td>" + milesDriven + "</td><td>" + 
            gallonsUsed + "</td><td>" + mpg + "</td></tr>");

        anymore = confirm("Do you have any more data to input?");
    }
    document.writeln("</tbody></table>");

</script>


4

2 に答える 2

3

このアプローチにはいくつかの問題があります。document.writeln()ドキュメントの内容を変更するために使用しないでください。代わりに、要素を作成してドキュメントツリーに追加します。優れたJavaScriptチュートリアルでは、その方法を説明する必要があります。また、識別子では大文字と小文字が区別されるため、anyMoreあちこちに書き込むことはできませんanymore。識別子には他のタイプミスもあります。また、未定義の値は等しくないためtrue、ループは実行されません。

于 2012-06-24T21:47:05.753 に答える
0
<pre>
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Mileage Record</title>
<style type = "text/css">
    table {
        width:300px;
        border-collapse:collapse;
        background-color:lightblue;
        }
    table, td, th {
        border: 1px solid black;
        padding: 4px;
        }
    th {
        text-align: left;
        color: white;
        background-color: darkblue
        }
    tr.oddrow {
        background-color: white;
        }
</style>

<script>
   // var milesDriven;
  //  var gallonsUsed;
  //  var mpg;
    var anyMore=0;
    var str="<table>";
        str+="<thead><tr><th>Miles Driven</th>";
        str+="<th>Gallons Used</th>";
        str+="<th>MPG</th>";
        str+="</tr></thead><tbody>";


function milesDriven(){
  return window.prompt("How many miles did you drive?");
}

function gallonsUsed(){
  return window.prompt("How many gallons did you use?");
}

function mpg(){
 return milesDriven()/gallonsUsed();
}


function addComponentsToDOM(){
    while (anyMore<3) { //not 0 is true or not undefined is true or not null is true 
    str+="<tr><td>" + milesDriven() + "</td><td>" + 
            gallonsUsed() + "</td><td>" + mpg() + "</td></tr>"
      //  anymore = confirm("Do you have any more data to input?");
      anyMore++;
    }

    str+="</tbody></table>";
    //document.writeln(); i suggest you not use this method add component to DOM tree
    //because  this method first empty DOM tree content
     document.body.innerHTML=str;
 }


//why use this event,because window after  loaded document.body not null
 window.onload=addComponentsToDOM;


</script>
</pre>
于 2012-06-25T03:22:02.807 に答える