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

When retrieving the class name and id of an element I always get undefined

本文关键字:未定义 id 元素 检索      更新时间:2023-09-26

我正在使用此代码进行调试...

$(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;
    });
  });
}

注:alert("class: "+ $el.className +" id: " + $el.id); 它总是为$el.className$el.id返回"未定义"。

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

我已经尝试了许多$el.id的变体,但似乎没有任何效果。

你混合了jQuery和vanilla javascript属性。 className是香草,$(this)是一个jQuery对象。

任一更改

$el.className

$el.attr('class')

或者如果你想使用className

var $el = $(this);

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