当前位置:  开发笔记 > 编程语言 > 正文

JQuery方法和DOM属性

如何解决《JQuery方法和DOM属性》经验,为你挑选了1个好方法。

我很困惑何时可以使用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是要访问的项目的索引.



1> Sampson..:

你需要.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是要访问的项目的索引.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有