Jquery获取对初始节点的引用

时间:2011-07-05 08:29:22

标签: jquery

我有这一行:

$('.faq_answer').prev().append(finalRender.cloneNode(true)).click(function () {toggle(this)});

我需要将this关键字替换为对当前正在操作的$('。faq_answer。')中的节点的引用。

我已经检查了Jquery文档,但似乎并没有涵盖这种情况。

4 个答案:

答案 0 :(得分:0)

你可以这样做:

     click(function (event) {
      //event.target is the element that has been clicked and you could use this instead of click
      });

如果你想要一个对选择器的引用(我认为你没想要,所以我删除了我的答案),你可以简单地这样做:

    var faq = $('.faq_answer')

答案 1 :(得分:0)

任何函数的上下文中的

this都限定为该函数。因此,您应首先获得.fag_answer的引用,然后才能使用它。

 var faq = $('.faq_answer');
 faq.prev().append(finalRender.clonNode(true)).click(function(){toggle(faq);});

答案 2 :(得分:0)

如上面的Nicola所述,您可以创建对选择器的引用,然后在单击处理程序中使用它:

var faq = $('.faq_answer');
faq.prev().append(finalRender.cloneNode(true)).click(function () {toggle(faq)});

你可能还想在它周围创建一个闭包。

答案 3 :(得分:0)

好的,我找到了一种方法:

var faq = $('.faq_answer');
faq.prev().append(finalRender.cloneNode(true)).click(function () {toggle($(this).siblings())});

给我当前faq dom对象的所有兄弟姐妹。

然后在我的切换功能中,我添加了:

element = element.get(0);

这似乎让我得到了我想要操作的dom元素。目前我认为它很强大,但实际上我不明白为什么它应该像那样工作。