1

我有一个简短的例程,应该获取文本区域中的单词数,然后将该数字输出到target. 但是,无论实际有多少单词,它总是返回 11。

我敢肯定这很简单,但我看不到,所以如果有人能给我一些指示,我将不胜感激。谢谢。

jQuery(document).ready(function($){

    var target = $('.dd-options #wp-word-count .word-count');

    jQuery('textarea#welcome_text').on('keyup', function(){

        var text = $(this).val,
            word_count = $.trim(text).split(' ').length;

        target.html(word_count);

    });

});
4

1 回答 1

5

jQueryval是一个函数,所以你必须调用它(通过放在()它后面):

jQuery(document).ready(function($){

    var target = $('.dd-options #wp-word-count .word-count');

    jQuery('textarea#welcome_text').on('keyup', function(){

        var text = $(this).val(), // <====================== here
            word_count = $.trim(text).split(' ').length;

        target.html(word_count);

    });

});

您的代码所做的是toString(隐式)调用函数(在大多数浏览器中返回函数源代码的某个版本),然后计算其中的“单词”。

旁注:在这种情况下,由于您试图获取 a 的值textarea,因此您也可以只使用textarea的内置value属性而不是 jQuery 的val函数:

var text = this.value,

而不是

var text = $(this).val(),

(and ) 元素的value属性是非常可靠的跨浏览器。textareainput

于 2012-12-12T15:31:28.687 回答