一个名为“mu”的用户向我提供了我真正喜欢的以下答案。 但是,我在这里有一些问题,我希望有人可以帮助我。
鉴于以下内容:
function() {
var $this = $(this);
$this.data('orig', $this.html()).html('<a href="blabla.org">go here</a>');
},
function() {
var $this = $(this);
$this.html($this.data('orig')).removeData('orig');
}
1) 为什么我们有需要,它做了什么: var $ this = $(this) - 为什么我们不能在整个地方使用$(this)?
2)为什么我们需要那里的'orig'?
请,:)提供尽可能详细的信息,真的,我对这一切都很陌生。
提前多多感谢, MEM
答案 0 :(得分:3)
无需使用$this
代替$(this)
,但会更快。您正在进行一次调用$(this)
并将结果存储在变量中,而不是一遍又一遍地进行调用。
请注意,$(this)
是对函数$
的调用,其值为this
作为参数,而$this
只是变量的名称。函数调用返回一个jQuery对象,该对象包含this
引用的一个元素的列表,这就是存储在变量中的内容。
字符串'orig'
是您要存储的数据的标识符。使用data
方法存储的每条信息都需要一个标识符。
答案 1 :(得分:2)
我假设你正在使用jQuery。
var $this=$(this)
只需将jQuery函数的值放入变量(称为$ this)中,节省一点时间,因为它在以后使用时不会调用函数来获取值。
jQuery对象使用“data”属性来保存数据。它是一种关键/类型的财产。所以像
这样的一行$(this).data('orig', whatever);
在data属性中创建一个名为“orig”的键,并将值“what”放入其中。
答案 2 :(得分:1)
你可以在所有地方使用$(this)但是将元素转换为jQuery对象总是有开销,所以如果你知道你将多次使用jQuery对象,而不是在链中,然后你应该将它存储为一个变量,这样你就不会每次都在jQuery转换中产生开销。
orig部分只存储节点的原始内容,因此它可以在完成后返回到原始状态。与将其存储在变量中类似,但您不必担心范围。