我有一个简短的例程,用于获取文本区域中的单词数量,然后将该数字输出到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);
});
});发布于 2012-12-12 23:31:29
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(),textarea (和input)元素上的value属性是非常可靠的跨浏览器的。
https://stackoverflow.com/questions/13843047
复制相似问题