昨天媳妇挑了一个append,今天挑了一个prop,还真会挑......
接下来几天的jq均已jq1.7.1这个版本为例。
跟昨天一样,我们先来看看api是怎么写的:
获取在匹配的元素集中的第一个元素的属性值。
看完api你是否觉得和attr函数很想呢?如果还不了解attr那么请你祈祷俺媳妇早日挑到这个函数吧。
好了我们来看函数吧,这个函数接受4种参数
1、name:String,这个比较容易理解$("选择器").prop("key");获取到选择器的key属性,当然前提是对象存在key这个属性
2、properties:map,其实个人觉得这个类型描述成object比较容易看懂,这是个设置属性的方法,哈哈,写法就是$(“选择器”).prop({key1:1,key2,"value2"});如此设置之后再用前面的方法获取,有个要注意的是使用prop方法添加的属性可以判别数据类型哦,至于为什么,我们后面分析。
3、key,value,分别key是string类型,value是object类型,注意,这个object不一定必须是对象或者啥,你也可以是string,因为取值方面能够区分数据类型,所以value理论上是可以放任何类型的,当然,如果你放function类型,那么恭喜你,会进入第四种情况。
4、key,function(index, attr),key同上,value变成了function,这个function在执行的时候接受2个参数,index和attr,这个i是在执行过程中选择器中的索引,不好理解就看看第一篇,attr就是选择器中原来key所对应的值,我们看个例子吧。
$("body").html('<div id="d1" class="c1"></div><div id="d2" class="c1"></div>'); $("#d1").prop("key",1);//注意这里是Number类型 $("#d2").prop("key","2");//注意这里是String类型 $(".c1").prop("key",function(i,attr){alert(typeof attr);alert(attr)})
运行上面的代码,我们能够很轻松的理解第四种情况,如有不明白的请留言。
当然上面的例子没有return 任何东西,实验结果是元素的属性未做任何改变,原因我们等下看源码。
好了api讲的差不多了,我们看看源码吧。
看到这个接口,我意识到还有个prop,赶紧ctrl+F
看下面截图之前,先科普下,
nodeType有12个值
1表示元素节点
2表示属性节点
3表示文本节点
4表示CDATA_SECTION_NODE(CDATA片段)
5表示ENTITY_REFERENCE_NODE(实体参考?)
6表示ENTITY(实体名称?)
7表示PROCESSING_INSTRUCTION_NODE(处理指令节点)
8表示注释内容节点
9表示文档节点
10表示文档类型节点
11表示文档片段节点
12表示符号节点
至于每种节点表示的东西,大家可以谷歌下
看完jQuery.prop我们看看核心的
好了今天就到这吧,明天有特别希望看的吗?请留言
大家瞅瞅 有木有不对的,求斧正,另外大家可以加俺的QQ群:43881427一起讨论讨论前端问题里面还有.net SQL的高手哦