有人可以解释“这个”在jQuery中是如何工作的。我试图在网上找到一些信息,但因为“这个”在他通常的意义上被大量使用,我找不到任何好的东西。
我希望能够在不给每个列表元素一个id的情况下更改列表元素(<li>
)的背景。
答案 0 :(得分:2)
$('li').on('click.namespace', function() {
console.log(this); /* this is a reference to the DOM
element you clicked */
console.log($(this)); /* this is a jQuery reference to the
DOM element you clicked */
/* using jQuery reference you can change the background in this way */
$(this).css('background-image', 'url(...)');
});
答案 1 :(得分:1)
您找到click() documentation了吗?它显示了如何使用点击处理程序和它有甚至使用$(this)
的示例。
答案 2 :(得分:1)
以下是一个例子:
$('li').click(function() {
$(this).attr("class", "clicked");
});
当点击某个项目时,this
会获取所点击项目的值,即DOM元素。 $(this)
允许您访问jquery API。
答案 3 :(得分:1)
$("li").click(function() {
$(this).css("background-color", "red");
});
这是一个例子。 $(this)
指的是JQuery对象,this
指的是被点击的常规DOM对象。
答案 4 :(得分:1)
如果在li上设置onclick事件,可以使用$(this)来获取li的jquery对象,然后添加一个类,例如。 $(本).addClass( “newBackground”)。
答案 5 :(得分:1)
jQuery很友好地将你的函数的上下文设置为你感兴趣的东西。在这种情况下,<li>
有问题。但是this
仍然是一个裸DOM元素,你需要用$()
包装它以在其上使用jQuery方法。
$('li').on('click', function() {
$(this).css({background:'red'});
});
答案 6 :(得分:1)
有时您必须使用绑定函数(请参阅jQuery.proxy()
)作为事件处理程序,在这些情况下,您可以以不同方式访问当前元素,而不是this
,您可以使用{{1 }}属性,请参阅http://api.jquery.com/event.currentTarget/