我有一个简短的例程,它应该获取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);
});
});
答案 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
属性是非常可靠的跨浏览器。