我认为2是相同的。
$("#SomeId")
和
document.getElementById("SomeId")
我认为我错了,因为以下工作
$("#SomeId").draggable();
这两者都没有
document.getElementById("SomeId").draggable();
或
var x = document.getElementById("SomeId");
x.draggable();
我的问题是这里的区别是什么? JQuery是否采用了一些技巧和注册方式,只有通过JQuery选择的元素才能与JqueryUI一起使用?
到目前为止,我的项目只是vanilla Javascript,但现在我必须使用JQuery,所以我正在迁移。我知道如何解决这个问题并提出一些修复方法,但我的问题是为什么这不起作用,因为理解更重要。
答案 0 :(得分:3)
这不起作用,因为jquery选择器不仅仅是元素。它返回一个jquery对象,允许你对它们执行jquery-ee,比如.draggable()
。
如果您想使用javascript getElementById()
方法,可以将上述示例更改为:
var x = document.getElementById("SomeId");
$(x).draggable();
将普通的javascript对象转换为jquery对象。
如果你分别使用jquery对象和js dom对象的console.log(),你会发现它们非常不同。