Javascript 在检索元素的类名和id时,我总是未定义

Javascript 在检索元素的类名和id时,我总是未定义,javascript,jquery,Javascript,Jquery,我正在使用此代码调试 $(document).ready(function() { $('.slider').slider(); }); $.fn.slider = function() { return this.each(function() { var $el = $(this); var dragging = false; var startX = $el.offset().left; var startL = 0; $el.moused

我正在使用此代码调试

$(document).ready(function() {
  $('.slider').slider();
});

$.fn.slider = function() {
  return this.each(function() {
    var $el = $(this);
    var dragging = false;
    var startX = $el.offset().left;
    var startL = 0;
    $el.mousedown(function(ev) {
        dragging = true;
        startX = ev.clientX;
        startL = $(this).css('left');
        alert("class: "+ $el.className +"   id: " + $el.id);
    });

    $(document).mousemove(function(ev) {
        if (dragging) {
            var newLeft = parseInt(startL) + (ev.clientX - startX);
            $el.css('left', newLeft );
        }
    }).mouseup(function() {
        dragging = false;
    });
  });
}
注意:
警报(“类:+$el.className+”id:+$el.id);
它总是为
$el.className
$el.id
返回“未定义”

如何让它返回我单击的元素(div)的id和类


我尝试了许多
$el
.id
的变体,但似乎都不起作用。

您混合了jQuery和vanilla javascript属性
className
是普通的,并且
$(这个)
生成一个jQuery对象

要么改变

$el.className

或者如果要使用
类名

var $el = $(this);

(尽管这也需要更改代码的其他部分)

尝试以下操作:

$(function() {
$("div").click(function() {
     var name = this.name;
     var cls = this.className;
     var id= this.id;

     alert("Name: " + name + " / Class: " + cls + " / Id: " + id);
    });
});

就这样,谢谢你!当时间限制结束时,我会批准答案。自从我提出这个问题以来,我已经了解了很多关于JavaScript的知识,我意识到console.log()比使用alert()调试有用得多。
var $el = this;
$(function() {
$("div").click(function() {
     var name = this.name;
     var cls = this.className;
     var id= this.id;

     alert("Name: " + name + " / Class: " + cls + " / Id: " + id);
    });
});