我如何在jQuery中做到这一点?在$中传递选择器而不是jQuery对象的任何技巧

问题描述

| 在JavaScript中,如果我将一个具有ID的孩子附加到另一个地方,则该孩子将从他们当前所在的原始位置删除。 在javascript中,我有一个事件,可以在函数中使用此事件来获取选择器
$(\'.\').event(function(){
    this
});
这被传递给另一个函数,它们可以正常工作。现在我要传递克隆而不是对象。请记住,这没有ID。 旧代码通过将
this
传递为
DoSomething(this)
来工作 如果我使用jQuery
clone
进行克隆,则我拥有jQuery对象。那么在使用克隆时,如何获得对ѭ1的引用而不是jQuery对象?
var clone = $(this).clone() // this is jQuery object. 
//how do I get this out of clone? 
    

解决方法

           如果我将一个具有ID的孩子附加到另一个地方,则将其从他们当前所在的原始位置删除。 是的,但是对于没有“ 6”属性的子节点也是如此。 ѭ6只是您获得Element节点对象的引用的一种简单方法。它对DOM克隆行为的插入没有影响。   在javascript中,我有一个事件,可以在函数内使用
this
来获取选择器 不,事件处理程序中的“ 1”为您提供DOM Element节点对象,而不是选择器字符串。可以使用
$(node)
将一个Node转换为它周围的jQuery包装,而使用
$(selector)
将一个选择器转换为匹配节点列表上的jQuery包装,但是除了jQuery API中的这种重载之外,它们是完全不同的动物。 要将Node从jQuery包装器中拉出,可以使用
get()
方法或简单的类似于数组的访问:
var clonedNode= $(this).clone()[0];

var clonedNode= $(this).clone().get(0);
去尝尝。 (
get()
具有一些此处不需要的其他功能。) 要获得用于创建jQuery包装器的选择器,可以使用
selector
属性,但是如果包装器是通过节点对象(
$(this)
)而不是选择器创建的,则不会返回任何内容。     ,        
$(this).clone().get(0)
。这将从jQUery对象获得第一个匹配的DOMElement。     ,        要从jQuery对象获取DOMElement对象,请使用get(0):
var clone = $(this).clone(); // this is jQuery object. 
var el = clone.get(0); // this is DOMElement object