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

时间:2011-09-10 00:48:14

标签: javascript jquery function

我正在编写一个需要知道所点击的div的位置的函数。

我想知道我是否可以将点击的对象的位置作为javascript变量?

这是代码。

HTML

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3($(this),'product-details','product-specs');">

使用Javascript:

function swap3(currentDivId ,oldDivId, newDivId) {
    var oldDiv = currentDivId.nextAll("div." + oldDivId);
    var newDiv = currentDivId.nextAll("div." + newDivId);
    oldDiv.style.display = "none";
    newDiv.style.display = "block";
}

2 个答案:

答案 0 :(得分:3)

this指的是当前元素。

在jQuery中,当他们使用$()来获取元素时,$(this)返回jQuery等同于vanilla JS的this

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');">

答案 1 :(得分:0)

$()会返回一个 DOM元素(就像您可以使用方法属性等对象的对象)如果你为它设置一个变量,该变量必须正确地像jQuery-Object一样工作。但根据我的经验,有时候不要!我学习最好的方法是通过jQuery-selector($)获取变量。您的代码是正确的,但如果您应用这些更改应该会更好:

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"});
}