Javascript 检查对象是否基于jquery对象
我正在根据页面上的一些按钮创建一个对象数组。当我单击其中一个按钮时,我想遍历数组,看看它是否与刚才单击的按钮匹配。显然,当前没有匹配项,因为它试图将对象与jquery对象进行比较,所以类型不同。我如何将其转换成一种格式,以便进行比较Javascript 检查对象是否基于jquery对象,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我正在根据页面上的一些按钮创建一个对象数组。当我单击其中一个按钮时,我想遍历数组,看看它是否与刚才单击的按钮匹配。显然,当前没有匹配项,因为它试图将对象与jquery对象进行比较,所以类型不同。我如何将其转换成一种格式,以便进行比较 dropdowns = [] $('.dropdown').each (index, el) => dropdown = new Dropdown(el: $(el)) dropdowns.push(dropdown) $('.dropdo
dropdowns = []
$('.dropdown').each (index, el) =>
dropdown = new Dropdown(el: $(el))
dropdowns.push(dropdown)
$('.dropdown').on 'click', ->
dropdown = @
$.each dropdowns, (index, el) =>
if dropdown == el
alert 'match'
new下拉列表
使用一些方法创建一个新的coffeescript类,例如.show()
.hide()
等
谢谢通常您只需要使用$(),例如:
$(obj) //gives the jquery object for obj
您可以通过
.data
将下拉列表
实例分配给元素,然后您甚至不必进行比较。或者您将事件处理程序绑定到下拉列表中
。您是否尝试过if Dropdown[0]==el
@FelixKling谢谢,但现实世界的场景有点复杂,所以不要认为它们是我实际尝试的选项-我简化了它,以便可以访问。Real js在这里,它使用的是uniform,然后您可以访问下拉列表
实例的jQuery对象和底层DOM元素,并将其与下拉列表
进行比较。我不知道CoffeeScript,您可能必须提供一个方法,允许您访问下拉列表
实例的jQuery对象。我正在将数据附加到元素下拉列表=新下拉列表(el:$el)
$el.data('Dropdown',Dropdown)
以后是否还要检查我们在迭代时要比较的类的实例是否与我们分配给元素上数据的实例相同?好吧,它给出了一个jQuery对象。对jQuery的两个调用返回不同的对象,即$(obj)==$(obj)
是false
。