0
<!DOCTYPE HTML>

<html>
<head>
    <title> Javascript - stuff </title>
    <script type="text/javascript">
    <!--
    function GetCountsAll( Wordcount, Sentancecount, Clausecount, Charactercount )
    {
        var TextString = document.getElementById("Text").innerHTML;
        var Wordcount = 0;
        var Sentancecount = 0;
        var Clausecount = 0;
        var Charactercount = 0;

        // For loop that runs through all characters incrementing the variable(s) value each iteration
        for (i=0; i < TextString.length; i++);
        if (TextString.charAt(i) == " " = true)
            Wordcount++;
        return Wordcount;

        if (TextString.charAt(i) = "." = true)
            Sentancecount++;                    
        Clausecount++;
        return Sentancecount;

        if (TextString.charAt(i) = ";" = true)
        Clausecount++;  
        return Clausecount;
    }


    -->
    </script>
</head>

<body>

    <div id="Text">
        It is important to remember that XHTML is a markup language; it is not a programming language. The language only describes the placement and visual appearance of elements arranged on a page; it does not permit users to manipulate these elements to change their placement or appearance, or to perform any "processing" on the text or graphics to change their content in response to user needs. For many Web pages this lack of processing capability is not a great drawback; the pages are simply displays of static, unchanging, information for which no manipulation by the user is required. Still, there are cases where the ability to respond to user actions and the availability of processing methods can be a great asset. This is where JavaScript enters the picture.
    </div>
    <input type = "button" value = "Get Counts" class = "btnstyle" onclick = "GetCountsAll()"/>
    <br/>       
    <span id= "Charactercount"> </span> Characters <br/>
    <span id= "Wordcount"> </span> Words <br/>
    <span id= "Sentancecount"> </span> Sentences <br/>
    <span id= "ClauseCount"> </span> Clauses <br/>

</body>
</html>

私は学生であり、まだJavaScriptを学んでいるので、恐ろしい間違いを許してください。スクリプトは、パッセージ内の文字、単語、文、および句の数を計算することを目的としています。簡単に言えば、機能していません。私はそれを機能させるために多くのことを試みました、そしてたくさんの異なるエラーを受け取りました、しかし私がこれを機能させることができないものは何でも。助けてください!(ところで、私は文のつづりを間違えたことを知っています)

4

3 に答える 3

0

さて、ここにはいくつかの問題があります。

まず、for ループで、各反復で実行するコードを中かっこで囲みます。

for (i=0; i < TextString.length; i++) {
    if (TextString.charAt(i) == " " = true)
        Wordcount++;
}

(WordCount はループの外側にあると想定しています (ただし、どちらにしても正しくありません))

次に、これらの戻り値を処理していません。

機能する方法returnは、関数の結果に変数を設定できることです。

例: function x() { return 2; }

var i = 1;
var q = i + x(); // Add the result of the function to i
alert(q); // This will display 3

したがって、return を呼び出すことで、関数が呼び出された場所にその値を送り返しますが、それを使用することはありません。

また、呼び出すとreturnすぐに関数が終了します。処理を続行したい場合は、これは必要ありません。3 つの値ごとに変数を作成し、結果をそこに格納することをお勧めします。次に、スクリプトで処理した後、div の innerHTML をそれらに渡すことができます。

役立つ例を次に示します。

<html>
<head>
    <title>Example Javascript</title>
    <script type="text/javascript">

    function myFunction()
    {
        var text = Array(8).join(parseInt('')) + ' Batman!';
        var element = document.getElementById("result");

        element.innerHTML = text;
    }

    </script>
</head>
<body>
The output from our function is: <div id="result"> </div>
<br />
<button type="button" onclick="myFunction()">Run</button>
</body>
</html>

これを解決するための非常に簡単な方法がいくつかあることに注意したいと思いますが、これは宿題または少なくとも学習経験のように思えます。あなたは近いです!私のアドバイスは、それを続けることです!

于 2012-10-13T03:56:01.353 に答える
0

からセミコロンを削除しfor (i=0; i < TextString.length; i++);ます。これはループから抜け出します。

ピリオドが表示されるたびにブラケットが増加するように、{}ブラケットを配置します。現在、Sentance のみが毎回インクリメントされます。句は、テキストの最後でインクリメントされます。
Sentancecount++;
Clausecount++;

また、一般的に s の後に括弧を使用しますif。読みやすくなり、簡単に読めればコードが何をしているのかがわかります。

次に、メソッドからの戻り値を 1 つだけ持つことができます。それが理にかなっている場合は、最初のメソッドで 2 番目のメソッドを呼び出すようにします。値が与えられているいくつかの変数を取得するように設定し、それらを出力します。

h番目

于 2012-10-13T03:30:59.990 に答える
0

split文字列のメソッドを使用できます。このような:

WordCount = TextString.split(' ').length;
Sentancecount = TextString.split('.').length;
Clausecount = TextString.split(';').length;
Charactercount = TextString.length;

forこの方法では、もうループは必要ありません。

于 2012-10-13T03:32:07.293 に答える