引用从其事件处理程序引起事件的元素

时间:2013-07-10 07:38:24

标签: jquery

今天我正在使用此代码。

$("#textBox").on("keyup", function () {
  //if (this.val().length > 4);
  if ($("#textBox").val().length > 4)
    console.log("TextBox written to.");
});

然而,我有点困扰我,我正在使用对文本框的id的硬编码引用。我宁愿将它称为“任何人调用此事件处理程序”。当然这个不起作用(我的猜测是它指的是函数本身或类似的东西。

  1. 我如何引用“谁......”?
  2. 这个指的是什么?

3 个答案:

答案 0 :(得分:2)

不,$(this)应该有用。 jQuery保证this将成为对所作用对象的引用。

但是,在您的情况下,this是DOMNode。您需要将其包装在jQuery对象中才能访问特定于jQuery的函数val。您可以执行$(this).val()this.value

答案 1 :(得分:1)

使用'this'作为选择器:

$("#textBox").on("keyup", function () {
  if ($(this).val().length > 4)
    console.log("TextBox written to.");
});

答案 2 :(得分:1)

这肯定会有效:

if (this.value.length > 4)

this在这里指的是附加处理程序的DOM元素。匿名回调函数为其创建特定的上下文。