我可以使用$(this)作为javascript变量吗?
我正在编写一个函数,它需要知道单击的div的位置 我想知道是否可以将单击对象的位置作为javascript变量获取 这是代码 HTML我可以使用$(this)作为javascript变量吗?,javascript,jquery,function,Javascript,Jquery,Function,我正在编写一个函数,它需要知道单击的div的位置 我想知道是否可以将单击对象的位置作为javascript变量获取 这是代码 HTML 此引用当前元素 在jQuery中,当他们使用$()获取元素时,$(this)返回jQuery等价于vanilla JS的this <area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');">
此
引用当前元素
在jQuery中,当他们使用$()
获取元素时,$(this)
返回jQuery等价于vanilla JS的this
<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');">
$()
返回一个DOM元素(就像一个对象,可以使用它的方法,属性,等等),如果您为它设置了一个变量,那么该变量必须像jQuery对象一样正确工作。但以我的经验,有些时候,不!我了解到最好的方法是通过jQuery选择器($
)获取变量。您的代码是正确的,但如果应用以下更改,则应该更好:
function swap3(currentDivId ,oldDivId, newDivId) {
var oldDiv = $(currentDivId).nextAll("div." + oldDivId);
var newDiv = $(currentDivId).nextAll("div." + newDivId);
$(oldDiv).css({"display" : "none"});
$(newDiv).css({"display" : "block"});
}
谢谢,这回答了我的问题。在这种情况下,“这”的价值是什么?如果您提醒它,它的id类似于Object[HTMLObject]——一个DOM元素,包含关于标记、子项、属性等的所有信息。这是不正确的
$(this)
返回一个包含一个元素的jQuery对象--this
的当前计算值。有什么不对我说$(this)
返回jQ的等价物this
,然后说this
是一个对象[HTMLObject]
,这意味着$(this)
是一个jQuery对象
。我对这里的错误很感兴趣:)如果这个计算为DOM元素,那么$(这个)
不会“得到”任何东西——它只包装DOM元素$(this).jqueryProp
仅在this
计算为DOM对象的情况下“等效”于this.normalDOMProp
。只是一些小细节。评论比帖子更明确。谢谢,仍然不起作用,但我已经把问题移到这里了。。。可能还要重新改写。干杯好啊我会看看链接,如果可以,我会帮助你。这是不正确的$(x)
从给定的DOM元素(由x
引用的元素)返回一个jQuery对象,请记住此
设置为在传统事件回调中引发事件的元素)。按照jQuery的最初目的,您是对的。但我的经验告诉我一些其他的事情!我知道你在说什么,谢谢。oldDiv
和newDiv
已经是jQuery对象了。再次将它们传递给jQuery
是多余的$()
总是返回jQuery对象,大多数方法也是如此。文档中提到了方法返回的内容。$()
返回DOM元素的语句完全错误。(-1)
<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');">
function swap3(currentDivId ,oldDivId, newDivId) {
var oldDiv = $(currentDivId).nextAll("div." + oldDivId);
var newDiv = $(currentDivId).nextAll("div." + newDivId);
$(oldDiv).css({"display" : "none"});
$(newDiv).css({"display" : "block"});
}