Javascript JQuery方法和DOM属性
对于何时可以使用DOM属性以及何时可以在Jquery对象上使用Jquery方法,我感到困惑。比如说,我使用选择器Javascript JQuery方法和DOM属性,javascript,jquery,dom,Javascript,Jquery,Dom,对于何时可以使用DOM属性以及何时可以在Jquery对象上使用Jquery方法,我感到困惑。比如说,我使用选择器 var $elemSel = $('#myDiv').find('[id *= \'select\']') 此时,$elemSel是一个jquery对象,据我所知,它是DOM元素数组的包装器。我可以通过迭代$elemSel对象/数组来获得对DOM元素的引用(正确吗?) 我的问题是: 1.有没有办法将这个$elemSel转换成DOM元素的非JQuery规则数组? 2.我可以同时组合D
var $elemSel = $('#myDiv').find('[id *= \'select\']')
此时,$elemSel是一个jquery对象,据我所知,它是DOM元素数组的包装器。我可以通过迭代$elemSel对象/数组来获得对DOM元素的引用(正确吗?)
我的问题是:
1.有没有办法将这个$elemSel转换成DOM元素的非JQuery规则数组?
2.我可以同时组合DOM属性和JQuery方法吗(类似这样)
(节点名与DOM相关,子节点与JQuery相关)
编辑:这有什么问题吗
$elemSel.get(0).is(':checked')
编辑2:
谢谢你的回复。我现在明白了,我可以使用get(0)来获取DOM元素。其他问题:
var myBox = $("div#myBox");
alert(myBox.get(0).id); // "myBox"
读科迪·林德利的
Re:Edit:
.is()
不是本机javascript方法。当您运行.get(0)
时,您不再使用jQuery对象,因此您不能期望从它运行jQuery方法
如果要对特定结果运行.is()
,请使用或:
Re:Edit#2 鲍勃,你真的应该创造新的 问题,而不是问更多和更多的问题 这里有更多 将dom元素转换为jquery对象是通过在选择器中传递它来完成的:
var myBox = document.createElement("div");
var myBoxJQ = $(myBox);
将此分配给变量。这取决于你什么时候做。如果“this”指的是jQuery对象,那么this
将是jQuery对象。您可以使用.get(0)
,按照此
进行转换
当此
引用jQuery对象时,不需要将其包装在$()中。这是多余的
最后,$elemSel.children('td')。节点名
可以这样做:$elemSel.children('td')[0]。节点名
或
$elemSel.children('td').get(0).nodeName,其中0是要访问的项的索引。因为jQuery选择器中可能有多个匹配项,所以需要从“数组”中获取元素
可以使用该方法返回单个DOM元素或数组或DOM元素
例如:
编辑:
$elemSel.get(0).is(':checked')
将不起作用,因为您正在获取Dom对象,然后试图对其使用jQuery函数。如果希望获得单个jQuery元素,请使用
还有一个获取(索引)功能的快捷方式:
$(selector)[0].nodeName
Soruce:为了调用本机DOM方法,可以使用get(索引)。或者,如果您想使用jQuery对象方法,您应该用jQuery包装一个本地DOM元素,这将把DOM元素转换成一个jQuery对象,这样所有的方法都可以使用。
谢谢你的解释。所以,如果我想处理Jquery对象的各个元素,并想在它们上运行Jquery方法,我必须使用“每个”吗?还有其他方法吗?jQuery对象是一个数组。因此,可以将jQuery对象的每个实例视为数组。访问该数组中的第一项以在其上运行您的本机javascript方法。我是否可以请您在此处查看关于不同主题的jquery问题:?
var myBox = document.createElement("div");
var myBoxJQ = $(myBox);
var elims = $("div").get();
for(var i in elims)
alert(elims[i].nodeName);
$elemSel.eq(0).is(':checked');
$(selector)[0].nodeName