Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用'this'时,jQuery.val()不起作用`_Javascript_Jquery - Fatal编程技术网

Javascript 使用'this'时,jQuery.val()不起作用`

Javascript 使用'this'时,jQuery.val()不起作用`,javascript,jquery,Javascript,Jquery,我有一个textarea: <textarea id='ta' onkeydown='down(this)'></textarea> 这个JavaSript来源: <script> function down(input) { alert(input.val()); // not work // but this is work: alert($('#ta').val()); } </script> 功能关闭(输入)

我有一个
textarea

<textarea id='ta' onkeydown='down(this)'></textarea>

这个JavaSript来源:

<script>
function down(input) {
    alert(input.val());    // not work
    // but this is work: alert($('#ta').val());
}
</script>

功能关闭(输入){
警报(input.val());//不工作
//但这就是工作:警报($('#ta').val());
}
为什么这个来源不起作用


这里是使用
$()
在jQuery包装器中包装
输入的因为
.val()
是一种jQuery方法

试试这个:-

alert($(input).val()); 

它是这样工作的:

$(document).on('keyup','#ta',function(){
    alert($(this).val()); 
});

函数没有被调用,并且您忘记将
$()
添加到

代码:

$('#ta').keyup(function() {
   alert( $(this).val() );
});

.val()
是jQuery的一种方法,因此无论是
$(input).val()
还是本地JS
input.value
请在投票否决时留下反馈,答案到底有什么问题?不是我的否决票,而是“函数未被调用”是不正确的。解释可能不正确,但是代码应该工作得很好。此外,我通常建议使用
keyup
而不是
keydown
,因为后者是在任何文本输入发生之前执行的,因此发出警报的值不会反映输入的当前值。@Terry:虽然这是真的,但很遗憾答案中没有解释。单独使用代码并不是一个好的答案。@Paradoxis:OP确实没有正确设置JSFIDLE。但是,不清楚您是否指的是JSFIDLE演示。此外,由于OP在代码中编写,
//但这是工作:alert($('#ta').val()),我们可以得出结论,这只是小提琴的一个问题,函数是在它们的实际代码中调用的(这就是我们应该关注的)。为什么这个答案被否决了?这是完全合法的+1.
$('#ta').keyup(function() {
   alert( $(this).val() );
});