textarea中的单词总数返回11

时间:2012-12-12 15:29:13

标签: jquery keyup

我有一个简短的例程,它应该获取textarea中的单词数,然后将该数字输出到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);

    });

});

1 个答案:

答案 0 :(得分:5)

jQuery的val是一个函数,所以你必须调用它(通过将()放在它之后):

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(隐式)(在大多数浏览器中返回该函数的某些版本的源代码),然后计算其中的“单词”。

附注:在这种情况下,由于您尝试获取textarea的值,因此您也可以使用textarea的内置value属性jQuery的val函数:

var text = this.value,

而不是

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

value(和textarea)元素上的input属性是非常可靠的跨浏览器。