JQuery和'this'对象

Jag*_*agd 5 jquery this

我将以下JQuery函数附加到网页上n个文本框的模糊事件中.

$(document).ready(function() {
        $("input[id$='_txtTuitionAmt']").blur(function() {
            alert(this.value);
        })
    });
Run Code Online (Sandbox Code Playgroud)

它工作得很好.当用户选中任何文本框时,会弹出一个警告并在文本框中显示该值.

我很困惑的是"this.value",无论是JQuery还是JavaScript.我是否以正确的方式使用'this'对象,或者我应该做其他事情以获得元素的值?

对不起,如果我的问题看起来有点模糊.我只是试图掌握"这个"对象以及它是如何工作的.我查看了JQuery文档,但在"this"上找不到任何内容.

Nik*_*iko 13

指的是当前的dom对象(同样的方式document.getElementById("someid")即指想要的dom对象).基于浏览器,您现在可以访问该对象的函数/字段(即this.nodeName, this.value,...)您正在访问浏览器实现提供的内容.

如果你使用$(this)(或$("#someid")$(document.getElementById("someid")))你在jquery中封装对象 - 那么你现在可以访问jquery函数和字段(即.$(this).val(); $(this).find("somenode"),....)

如果你有一个jquery对象(即var n = $(this).find("#someid");)并且想要摆脱jquery包,那么你需要使用标准的dom函数.get(0).

本身可以解析为不同的对象,具体取决于它的调用位置.如果在onclick或其他事件处理程序(<div id="asdf" onclick="alert(this.id)...- 将打印asdf),表单或其他对象中调用它,它可以是一个节点- 请参阅http://www.quirksmode.org/js/this.html


And*_*ell 8

这= DOM元素

$(this)= jQuery'ified

通常我会尽可能使用普通的旧JavaScript.在这个例子中的jQuery替代方案是$(this).val()- 我没有看到它的需要.