【问题标题】:jQuery how to get the class or id of last clicked element?jQuery如何获取最后点击元素的类或ID?
【发布时间】:2012-08-29 15:48:08
【问题描述】:

我正在尝试获取最后点击元素的类或 id。这是我根据我发现的here...

HTML

<a href="" class="button">Button</a>

JQUERY

$('.button').click(function () {
          myFuntion();
});

function myFunction (e) {
 e = e || event;
 $.lastClicked = e.target || e.srcElement;

 var lastClickedElement = $.lastClicked;
 console.log(lastClickedElement);

}

这种做我想要的,但我不知道如何去修改它,所以我可以得到这个类。

我也尝试过使用this 解决方案,但无法让它与我的代码一起使用。

$('.button').click(function () {
  myFuntion();
});


function myFunction(){
    var lastID;
    lastID = $(this).attr("id");

    console.log(lastID);
}

当我这样做时,我的控制台日志返回为未定义。我可能遗漏了一些明显的东西。任何帮助深表感谢。谢谢。

【问题讨论】:

  • 感谢大家的快速回复。我将从第一个回复开始查看这些内容,看看我是否可以得到任何工作。

标签: javascript jquery


【解决方案1】:

您可以将点击的元素作为参数传递给您的函数:

$('.button').click(function () {
    myFunction(this);
});

function myFunction(element) {
    console.log(element);
    console.log(element.id);
    console.log($(element).attr("class"));
}

更新已添加jsfiddle

【讨论】:

  • 可以为班级做这个吗?
  • 当然,在myFunction:console.log($(element).attr("class"));
  • 好的,这非常接近我想要做的,一切似乎都正常。
  • 我想让点击处理程序更简单,比如 $('.button').click(myFunction); ...但这很好,我可以完成这项工作。我觉得它应该是基本的,但我不确定我到底需要什么。感谢您的帮助。
  • 嗯,原来你可以做到这一点,我并没有完全意识到这一点。检查此jsfiddle snippet,不要害怕尝试:P
【解决方案2】:

我想到了几种方法:

$(".button").click(myFunction);

应该使用上述myFunction


$(".button").click(function () { myFunction($(this)); });
function myFunction($elem) {
   var lastID;
   lastID = $elem.attr('id');
   $.data('lastID', lastID);
}

【讨论】:

  • 我试过这个,我得到一个控制台错误.. Uncaught TypeError: Object # has no method 'attr' ...这是我的小提琴jsfiddle.net/krishollenbeck/cFgWD
  • 我正在尝试类而不是 ID...我会仔细检查,但我认为我会得到同样的错误
  • 我收到此错误...未捕获的 TypeError: Object # has no method 'attr' ..
【解决方案3】:

为了获取元素的类名,假设您对要从中检索数据的元素有准确的引用:

var lastClickedElement = $.lastClicked,
    lastClickedElementClassNames = lastClickedElement.className;

这确实会返回元素所有类的完整列表。

【讨论】:

【解决方案4】:
$('.button').click(function () {
  myFuntion(this);
});


function myFunction(ele){
    var lastID;
    lastID = $(ele).attr("id");

    console.log(lastID);
}

【讨论】:

    【解决方案5】:

    首先选择所有可能的 DOM 元素

     var lastSelectedElement = null
    
        $(document).ready(function(){
           $("*").live("click",function(){
           lastSelectedElement = $(this);
           myFunction($(this));
          });
        });
    
       function myFunction(element) {
    console.log(element);
    console.log(element.id);
    console.log($(element).attr("class"));
     }
    

    你可以通过使用 jQuery .attr("ID OR CLASS"); 获取它的 ID 或类来玩 lastSelectedElement

    【讨论】:

      猜你喜欢
      • 2011-12-11
      • 2012-04-12
      • 2022-07-19
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多