计算字符/单词不起作用的功能

时间:2012-10-13 03:17:21

标签: javascript html

<!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,所以请原谅任何可怕的错误。该脚本用于计算段落中的字符,单词,句子和子句的数量。显而易见,它只是不起作用。我尝试了很多东西让它为我工作,并且得到了大量不同的错误,但无论我怎么做都不能解决这个问题。请帮忙! (顺便说一下,我知道我拼错了句子)

3 个答案:

答案 0 :(得分:0)

for (i=0; i < TextString.length; i++);中删除分号。这打破了循环。

将括号{}放在左右 Sentancecount++;
Clausecount++;
所以每次看到完整停止时它们都会递增。目前只有Sentance每次递增。条款在文本末尾增加。

我也会在if之后使用括号。它具有可读性,如果您可以轻松阅读,您可以看到代码正在做什么。

接下来,您只能从该方法返回一个。如果有意义的话,让第一种方法调用次要方法。设置它以便给出一些给定值的变量,然后将它们打印出来。

HTH

答案 1 :(得分:0)

您可以使用字符串的split方法。像这样:

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

这样,您就不再需要for循环了。

答案 2 :(得分:0)

嗯,这里有几个问题。

首先,您希望for循环在每次迭代时都要执行代码。

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

(我假设WordCount应该在循环之外(但不管怎样都不正确))

接下来,您没有处理这些返回值。

return的工作方式是您可以将变量设置为函数的结果。

例如:     function x(){         返回2;     }

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

因此,通过调用return,您将该值发送回调用该函数的位置,但您从未使用它。

此外,调用return会立即退出该功能。如果要继续处理,则不需要此选项。我建议你为这三个值中的每一个创建变量并将结果存储到该值。然后在脚本中处理之后,你可以将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>

我想指出,有一些非常简单的方法可以解决这个问题,但这似乎是家庭作业或至少是一种学习经历,这就是为什么我会让你走上正确的道路,而不仅仅是给你一个直接的答案。你很亲密!我的建议是坚持下去!