我在jsfiddle中有这个脚本,当我输入它时应该显示下面的实时文本。
它是一个简单的脚本,但我似乎没有看到问题所在,谢谢:))
编辑:从链接添加代码。
$(document).ready(function(){
$('#someTextBox').keyup(function(){
$('#target').html(this.val());
});
});
HTML
<textarea id="someTextBox"></textarea>
<div id="target"></div>
答案 0 :(得分:7)
应该是$(this).val()
而不是this.val()
,因为this
指向DOM元素而不是指定.val()
函数的jquery元素:
$('#target').html($(this).val());
答案 1 :(得分:6)
正如大家所说,$(this).val()
会奏效。但是,在每个按键上创建一个jQuery包装对象的开销并没有多大意义。如果你不需要jQuery在该元素上的扩展方法,this.value
是一个更好的选择:
$(document).ready(function(){
$('#someTextBox').keyup(function(){
$('#target').html(this.value);
});
});
答案 2 :(得分:2)
使用$(this).val()
代替this.val()
。
前者是一个jQuery对象,我认为后者只是一个DOM节点。
所以:
$(document).ready(function(){
$('#someTextBox').keyup(function(){
$('#target').html($(this).val());
});
});
答案 3 :(得分:1)
您需要$(this).val()
代替this.val()
答案 4 :(得分:0)
.val()是一个jQuery函数,所以它只在你调用jQuery对象时才有效。
this
本身不是jQuery(在你的例子中)。你必须将它包装在$()中,如下所示:
$(this)
所以正确的方法是这样的:
$("#target").html( $(this).val() );