jquery 美元符号
我有这个 html:
<ul id="list1" class="eventlist">
<li>plain</li>
<li class="special">special <button>I am special</button></li>
<li>plain</li>
</ul>
我有这个 jquery 代码:
$('#list1 li.special button').click(function(event) {
var $newLi = $('<li class="special"><button>I am new</button></li>');
var $tgt = $(event.target);
});
之间有什么区别
var $tgt = $(event.target);
我的问题是和
var $tgt = event.target;
i have this html:
<ul id="list1" class="eventlist">
<li>plain</li>
<li class="special">special <button>I am special</button></li>
<li>plain</li>
</ul>
and I have this jquery code:
$('#list1 li.special button').click(function(event) {
var $newLi = $('<li class="special"><button>I am new</button></li>');
var $tgt = $(event.target);
});
My question is what is the difference between
var $tgt = $(event.target);
and
var $tgt = event.target;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
event.target
是对 DOM 节点的引用。$(event.target)
是一个包装 DOM 节点的 jQuery 对象,它允许您使用 jQuery 的魔力来查询操作 DOM。换句话说,你可以这样做:
但你不能这样做:
event.target
is a reference to the DOM node.$(event.target)
is a jQuery object that wraps the DOM node, which lets you use jQuery's magic to query manipulate the DOM.In other words, you can do this:
but you can't do this:
在第一种情况下,本地变量
$tgt
将保存 jQuery 元素(包裹在 DOM 元素周围),在第二种情况下它将保存 DOM 元素。您不能直接在 DOM 元素上使用 jQuery 操作方法(例如
.val()
),因此如果您想这样做,您需要先将其转换为 jQuery 元素。In the first case, the local varialbe
$tgt
will hold the jQuery element (wrapped around a DOM element), in the second case it will hold the DOM element.You cannot use the jQuery manipulation methods (such as
.val()
) directly on DOM elements, hence you need to convert it to a jQuery element first if you want to do so.我建议只使用
$(this)
来获取元素。 jQuery 在内部执行此操作,因此您不必:回答您的问题:
$(event.target)
将使用 jQuery 进行扩展,而event.target
不会。I'd advise just using
$(this)
to grab the element. jQuery does that internally so you don't have to:To answer your question:
$(event.target)
will be extended with jQuery, andevent.target
won't.