【发布时间】:2013-03-04 03:47:13
【问题描述】:
我无法理解和使用 $(this) 关键字。例如,使用来自http://api.jquery.com/hover/的悬停类示例
HTML
<ul>
<li>Milk</li>
<li>Bread</li>
<li class='fade'>Chips</li>
<li class='fade'>Socks</li>
</ul>
<div class='fade'>My Div<div>
JQUERY
这将在所有 <li> 元素上添加函数。
$("li").hover(
function () {
$(this).append($("<span> ***</span>"));
},
function () {
$(this).find("span:last").remove();
}
);
如果我只想在淡入淡出类上添加函数。 我可以这样做
$("li.fade").hover(
function () {
$(this).append($("<span> ***</span>"));
},
function () {
$(this).find("span:last").remove();
}
);
这会选择所有淡入淡出类,包括 DIV
$("li").hover(
function () {
$('.fade').append($("<span> ***</span>"));
},
function () {
$('.fade').find("span:last").remove();
}
);
为什么这不起作用?
$("li").hover(
function () {
$(".fade", this).append($("<span> ***</span>"));
},
function () {
$(".fade", this).find("span:last").remove();
}
);
我正在学习尝试学习 jQuery。谢谢!
【问题讨论】:
-
你试过这样吗? $(".fade", $(this)).append($(" ***"));
-
不起作用。 jsfiddle.net/W5AQV/5
-
@awbergs:这没什么区别。 contect可以是一个元素,也可以是包含该元素的jQuery对象,结果是一样的。