Jquery $(this)节点及其使用

时间:2011-06-02 04:08:59

标签: jquery

我试图了解一些使用$(this)节点的jquery代码。它用于什么以及何时可以使用?

$("li").hover(border, noBorder);
function border()
{
    $(this).css("border", "1px solid black");
}

4 个答案:

答案 0 :(得分:5)

请阅读Remy Sharp的jQuery's this:demystified

  

实际上有两个主要的背景   在jQuery中'this'。第一个指的是   a到DOM元素,第二个到   一个jQuery对象。

作为DOM元素

$('a.newTarget').each(function () { // <- our anonymous callback
    // check the DOM attribute 'host' on this
    if (this.host != window.location.host) {
        // create a jQuery object using the current DOM element
        $(this).attr('target', '_new');
    }
});

作为jQuery对象

jQuery.fn.newTarget = function () {
    // 'this' is a jQuery object at this point - with all the jQuery functions

    return this.each(function () { // return so we don't break the chain
        // now we are inside of a jQuery function, the DOM element is the context
        // so 'this' has changed to become a DOM element.

        if (this.host != window.location.host) {
            $(this).attr('target', '_new');
        }
    });
};

希望这有帮助。

答案 1 :(得分:2)

$(this)只包装jQuery对象中this引用的内容。它通常用于回调中,以引用触发事件的元素等。

答案 2 :(得分:0)

这用于访问循环上的当前迭代值 例如,您有一个包含'n'行的表,以下代码将使用此

提醒每行内容
$(document).ready(function(){
    $('table#tableid tr').each(function(){

    alert($(this).html());

    }); 
});

答案 3 :(得分:-1)

您可以像http://jsfiddle.net/HwmEK/7/

一样使用它