Jquery $find(“id”).focus()和$id“.focus()之间的差异

Jquery $find(“id”).focus()和$id“.focus()之间的差异,jquery,asp.net,focus,find,Jquery,Asp.net,Focus,Find,对不起,我对jQuery还不太熟悉。我想知道,这两条线有什么区别?我挣扎了很长一段时间,因为find的解决方案对页面进行了回发 $find("<%=PopupInputPanelOkCancel1.FocusId%>").focus(); $("#<%=PopupInputPanelOkCancel1.FocusId%>").focus(); 我猜$find返回一个HTML对象,$返回一个jquery对象或类似的东西,但我不明白为什么第一个会触发回发。。。 只有第二个版

对不起,我对jQuery还不太熟悉。我想知道,这两条线有什么区别?我挣扎了很长一段时间,因为find的解决方案对页面进行了回发

$find("<%=PopupInputPanelOkCancel1.FocusId%>").focus();
$("#<%=PopupInputPanelOkCancel1.FocusId%>").focus();
我猜$find返回一个HTML对象,$返回一个jquery对象或类似的东西,但我不明白为什么第一个会触发回发。。。 只有第二个版本确实在字段上设置了焦点。

第一个版本不是有效的jQuery;第二个是有效的jQuery

说明:

有效的jQuery对象是通过在选择器周围包装$形成的。焦点是jQuery对象的一个方法。因此,第二条语句是有效的jQuery


.find也是jQuery对象的一个方法,因此类似于$'id'.find'.class'.focus是有效的jQuery,但您的第一条语句在jQuery中是无意义的。

我不完全同意您关于第一条语句无意义的看法。我使用以下代码来显示AjaxControlToolkit.modalPopupXtender,如下所示。var modal=$findmodalBehaviorId;如果是模态!=null{modal.show;}就像@Brian Mains在引用的帖子中说的那样:微软创建了$find作为一种将ASP.NET AJAX组件链接到DOM的方法。因此,它不是有效的jQuery,但如果您使用ASP.NET,它仍然是有效的代码。谢谢您的解释。我没有意识到这一点,因为我从未使用过ASP.NET。我对我的问题进行了编辑,以反映该语句在jQuery上下文中毫无意义。