2 ybdt1201 ybdt1201 于 2016.03.30 18:04 提问

求大神帮忙回答下有关jQuery对象的疑问
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
    </script>
</head>
<body>
    <input type="checkbox" id="pp" checked onchange="
    console.info($(this).length);//1
    console.info($(this)); //Object[input 属性(property)值 = 'on' 属性(attribute)值 = 'null']"
    />
</body>
</html>

打印的结果已经在代码中,
第一个不明白:打印的结果是object[],一般object后面跟的是{},这是为什么
第二个不明白:打印的结果已经是object[],说明是一个对象,为什么却能打印出长度为1;如果真的是对象,那么打印长度的时候应该为undifend

4个回答

CSDNXIAOD
CSDNXIAOD   2016.03.30 18:12

求大神帮忙啊!!!!!!!!!!!!!!!!!!!
{求大神帮忙!!!!!!}
用的vs2005,这怎么解决呢,求大神帮忙
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_20389175
qq_20389175   2016.03.31 12:06

。。。你因该看下 $(this)的结构,,,你多研究下html的解析就会发现它的节点树是采用的数组 得到结果是 [object] $(this).length =1 不奇怪

每个dom对象都有 each()方法;如果是object类型 那么如何each? 想多了解的话 可以去看看 一些高级教程了解一些解析方面的东西 ,javascript中的对象都是构造的,基于数组实现。和java的底层还是不一样的。

ybdt1201
ybdt1201 谢谢大神,路见不平拔刀相助!!!
一年多之前 回复
wenxuechaozhe
wenxuechaozhe   2016.03.30 21:14

首先你打印$(this),把当前元素给打印出来,其里面就是对应的属性。至于length,是因为那个对象里面有这个length属性,所以能够抓取出来。

ybdt1201
ybdt1201   2016.03.31 09:51

一般object,那么打印它的长度的时候应该为undifend

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!