我很困惑何时可以使用DOM属性以及何时可以在Jquery对象上使用Jquery方法.说,我使用选择器
var $elemSel = $('#myDiv').find('[id *= \'select\']')
此时,$ elemSel是一个jquery对象,我理解它是DOM元素数组的包装器.我可以通过迭代$ elemSel对象/数组来获取对DOM元素的引用(正确吗?)
我的问题:1.有没有办法将这个$ elemSel转换为非JQuery常规DOM元素数组?2.我可以同时组合DOM属性和JQuery方法(类似这样)
$elemSel.children('td').nodeName
(nodeName与DOM相关,children与JQuery相关)
编辑:这有什么问题?
$elemSel.get(0).is(':checked')
编辑2:
谢谢你的回复.我现在明白我可以使用get(0)来获取DOM元素.其他问题:
我如何将DOM元素转换为JQuery对象?
如果我将"this"赋给变量,是新的var DOM还是JQuery?如果是JQuery,我该如何将其转换为DOM元素?(因为我不能使用get(0))
var $ elemTd = $(this);
当我执行上述任务时,我看到一些代码示例不包含变量名称的$符号.为什么?
至于我最初的问题,我可以在JQuery对象上同时组合DOM属性和JQuery函数吗?
$ elemSel.children( 'TD').节点名称
Sampson.. 24
你需要.get(0)结果来获得DOM-ready对象.
var myBox = $("div#myBox"); alert(myBox.get(0).id); // "myBox"
阅读Cody Lindley撰写的" 剥离jQuery Wrapper和寻找数组 "
Re:编辑: .is()
不是原生的javascript方法.当你运行时.get(0)
,你不再使用jQuery对象,因此你不能期望从它运行jQuery方法.
如果要运行.is()
特定结果,请使用:eq(index) selector
,或.eq(index) method
:
$("div:eq(1)").is(":checked"); // gets second div $("div").eq(1).is(":checked"); // gets second div
回复:编辑#2
鲍勃,你真的应该创造新问题,而不是在这里要求越来越多.
将dom元素转换为jquery对象是通过在选择器中传递它来完成的:
var myBox = document.createElement("div"); var myBoxJQ = $(myBox);
This
对变量的贡献.取决于你什么时候做.如果通过"this"你指的是一个jQuery对象,那么this
它将是一个jQuery对象.您可以通过以下步骤转换它this
用.get(0)
.
何时this
引用jQuery对象,您不需要将其包装在$()中.这是多余的.
最后,$elemSel.children('td').nodeName
可以这样做:$elemSel.children('td')[0].nodeName
或者
$elemSel.children('td').get(0).nodeName
,0是要访问的项目的索引.
你需要.get(0)结果来获得DOM-ready对象.
var myBox = $("div#myBox"); alert(myBox.get(0).id); // "myBox"
阅读Cody Lindley撰写的" 剥离jQuery Wrapper和寻找数组 "
Re:编辑: .is()
不是原生的javascript方法.当你运行时.get(0)
,你不再使用jQuery对象,因此你不能期望从它运行jQuery方法.
如果要运行.is()
特定结果,请使用:eq(index) selector
,或.eq(index) method
:
$("div:eq(1)").is(":checked"); // gets second div $("div").eq(1).is(":checked"); // gets second div
回复:编辑#2
鲍勃,你真的应该创造新问题,而不是在这里要求越来越多.
将dom元素转换为jquery对象是通过在选择器中传递它来完成的:
var myBox = document.createElement("div"); var myBoxJQ = $(myBox);
This
对变量的贡献.取决于你什么时候做.如果通过"this"你指的是一个jQuery对象,那么this
它将是一个jQuery对象.您可以通过以下步骤转换它this
用.get(0)
.
何时this
引用jQuery对象,您不需要将其包装在$()中.这是多余的.
最后,$elemSel.children('td').nodeName
可以这样做:$elemSel.children('td')[0].nodeName
或者
$elemSel.children('td').get(0).nodeName
,0是要访问的项目的索引.