Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用$(this)作为javascript变量吗?_Javascript_Jquery_Function - Fatal编程技术网

我可以使用$(this)作为javascript变量吗?

我可以使用$(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');">

我正在编写一个函数,它需要知道单击的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');">

$()
返回一个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"});
}