$('')[0]

jquery对象本身是一个集合

jquery对象本身是一个集合

jquery对象本身是一个集合

起因:svg【beginElement】使用

  <svg id="svg" width="320" height="200" xmlns="http://www.w3.org/2000/svg">
    <text font-size="120" x="120" y="120">七
      <animate id="cs" attributeName="x" by="100" begin="indefinite" dur="3s" />
    </text> 
  </svg>
//错误方案(点击svg后并无法触犯【beginElement()】)
$("svg").click(function(){
  $("#cs").beginElement();
})
//修改方案1
 var animate = document.getElementsByTagName("animate")[0];
$("svg").click(function(){
  animate .beginElement();
})
//修改方案2
$("svg").click(function(){
  $("#cs")[0].beginElement();
})

思考

原来jQuery获得的对象并不和我们平时使用getElementById获得的对象是一样的对象

jQuery对象与dom对象的转换


只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。

如:

$(document.getElementById("msg"))

jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:

$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]

再举一个例子

<a class="a"></a>
<a class="a"></a>
<a class="a"></a>

$('.a')  // 选择了3个a,都是jq对象(可以用jq的属性、方法)

$('.a').eq(1) // 选择了第二个a,是jq对象(不可以使用dom属性方法,可以用jq的属性、方法)

$('.a')[1]  // 选择了第二个a,是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)

$('.a').eq(1)[0]  // 选择了第二个a,并且转化成都是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)

$('.a')[0].eq(1) // 错误,因为dom对象用不了jq方法,eq()是jq方法。

 

敲黑板

所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出

 

tip:

Jquery 获取对象的几种方式介绍

//1、JQuery的核心的一些方法 
each(callback) //就像循环 
$("Element").length; //元素的个数,是个属性 
$("Element").size(); //也是元素的个数,不过带括号是个方法 
$("Element").get(); //某个元素在页面中的集合,以数组的形式存储 
$("Element").get(index); //功能和上面的相同,index表示第几个元素,数组的下标 
$("Element").get().reverse(); //把得到的数组方向 
$("Element1").index($("Element2")); //元素2在元素1中的索引值是。 

//2、基本对象获取(注意这里获取的都是Jquery对象而不是Dom对象哦,但是他俩是可以转换滴) 
$("*") //表示获取所有对象 
$("#XXX") //获得 id=XXX 的元素对象(id可以是标签的id或CSS样式id) 常用 

$("input[name='username']") //获得input标签中name='userName'的元素对象 常用 

$(".abc") //获得样式class的名字是.abc的元素对象 常用 
$("div") //标签选择器 选择所有的div元素 常用 
$("#a,.b,span") //表示获得ID是a的元素和使用了类样式b的元素以及所有的span元素 
$("#a.b p") //ID号是a的并且使用了 b样式的 内部所有的p元素 

//3、层级元素获取 
$("Element1 Element2 Element3 ....") //前面父级 后面是子集 
$("div > p") //获取div下面的所有的 p元素 
$("div + p") //iv元素后面的第一个 p元素 
$("div ~ p") //div后面的所有的 p元素 

//4、简单对象获取 
$("Element:first") //HTML页面中某类元素的第一个元素 
$("Element:last") //HTML页面中某类元素的最后一个元素 
$("Element:not(selector)") //去除所有与给定选择器匹配的元素,如:$("input:not(:checked)") 表示选择所有没有选中的复选框 
$("Element:even") //获得偶数行 
$("Element:odd")//获得奇数行 
$("Element:eq(index)") //取得一个给定的索引值 
$("Element:gt(index)") //取得给定索引值的元素 之后的所有元素 
$("Element:lt(index)") //取得给定索引值的元素 之前的所有元素 

//5、内容对象的获取和对象可见性 
$("Element:contains(text)") //元素中是否包含text文本内容 
$('Element:empty") //获得元素不包含子元素或文本的 
$("Element:partnt") //获得元素包含子元素或文本的 
$("Element:has(selector)") //是否包含某个元素, 如:$("p:has(span)")表示所有包含span元素的p元素 
$("Element:hidden") //选择所有可见元素 
$("Element:visible") //选择所有不可见元素 

//6、其他对象获取方法 
$("Element[id]") //'所有带有ID属性的元素 
$("Element[attribute = youlika ]" //获得所有某个属性为youlika的元素 
$("Element[attribute != youlika ]" //获得所有某个属性为不是youlika的元素 
$("Element[attribute ^= youlika ]" //获得所有某个属性为不是youlika的开头的元素 
$("Element[attribute $= youlika ]" //获得所有某个属性为不是youlika的结尾的元素 
$("Element[attribute *= youlika ]" //获得所有某个属性包含youlika的开头的元素 
$("Element[selector1][selector2][....]") //符合属性选择器,比如$("input[id][name][value=youlika ]")表示获得带有ID、Name以及value是youlika 的input元素。 

//7、子元素的获取 
$("Element:nth-child(index)") //选择父级下面的第n个元素 
$("Element:nth-child(even)") //选择父级下面的偶数 
$("Element:nth-child(odd)") //选择父级下面的奇数 
$("Element:nth-child(3n+1)") //表达式 
$("Element:first-child") //选择父级下面的第一个子元素 
$("Element:last-child") //选择父级下面的最后一个子元素 
$("Element:only-child") //匹配父级下的唯一的一个子级元素,例如dt在dl列表中唯一,那么将选择dt 

//8、表单对象获取 
$(:input)//查找所有的Input元素,当然也包括下拉列表,文本域,单选框,复选框等。 
$(:text)//匹配所有的单行文本框 
$(:password)//匹配所有的密码框 
$(:radio)//匹配所有的单选按钮 
$(:checkbox)//匹配所有的复选框 
$(:submit)//匹配所有的提交按钮 
$(:image)//匹配所有的图像域,例如 
$(:reset)//匹配所有的重置按钮 
$(:button)//匹配所有的按钮 
$(:file)//匹配所有的文件上传域 
$(:hidden)//匹配所有的不可见元素或者type为hidden的元素 
$(:enabled)//匹配所有可用的input元素,比如radio:enabled表示匹配所有可用的单选按钮 
$(:disabled)//匹配所有的不可用input元素,作用与上相反 
$(:checked)//匹配所有选中的复选框元素 
$(:selected)//匹配所有的下拉列表 

//9、元素属性的设置与移除 
$("Element").attr(name) //取得第一个匹配的属性值,比如$("img").attr("src") 
$("Element".attr(key,value)") //某一个元素设置属性 
$("Element".attr({key:value,key1:value,....})) //为某个元素一次性设置多个属性 
$("Element").attr(key,function) //为所有匹配的元素设置一个计算的属性值。 
$("Element").removeAttr(name)//移除某一个属性

 

 

 

转载于:https://my.oschina.net/u/1428820/blog/1571022

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值