jquery的$.contains
html:<divid="box"><spanid="box"></span><spanid="pox"></span></div>jquery:alert($.cont...
html:
<div id="box">
<span id="box"></span>
<span id="pox"></span>
</div>
jquery:
alert($.contains($('#box').get(0), $('#pox').get(0)));
输出true。
id="pox"不是在第二个span的吗,那么 $('#pox').get(0)不是应该改成 $('#pox').get(1)么?这到底是怎么回事啊
把上面的 <span id="box"></span>改成<span id="cox"></span>,免得大神的你们从id方面解答。
id="pox"不是在第二个span的吗,那么 $('#pox').get(0)不是应该改成 $('#pox').get(1)么?这到底是怎么回事啊 展开
<div id="box">
<span id="box"></span>
<span id="pox"></span>
</div>
jquery:
alert($.contains($('#box').get(0), $('#pox').get(0)));
输出true。
id="pox"不是在第二个span的吗,那么 $('#pox').get(0)不是应该改成 $('#pox').get(1)么?这到底是怎么回事啊
把上面的 <span id="box"></span>改成<span id="cox"></span>,免得大神的你们从id方面解答。
id="pox"不是在第二个span的吗,那么 $('#pox').get(0)不是应该改成 $('#pox').get(1)么?这到底是怎么回事啊 展开
1个回答
展开全部
亲,html元素的id是唯一确定,几个元素不能起同一个id名称,这么做是错误的,你这么做
alert($.contains($('#box').get(0), $('#pox').get(0)));浏览器解析成$('#box')---id为#box的div,get(0)将jquery对象转化为dom对象,因为只有一个,得到的还是外层的这个div,而 $('#pox').get(0))是包含在这个div里面,当然输出的是true了
alert($.contains($('#box').get(0), $('#pox').get(0)));浏览器解析成$('#box')---id为#box的div,get(0)将jquery对象转化为dom对象,因为只有一个,得到的还是外层的这个div,而 $('#pox').get(0))是包含在这个div里面,当然输出的是true了
追问
你再试试。这个问题你就算把id该成唯一了,结果还是一样。你再试试。
追答
那么 $('#pox').get(0)不是应该改成 $('#pox').get(1)么?
$("#pox")只有一个,那就是第二个span的哪来的get(1),选择器你都没弄明白
$("#box span").get(0)(等价于:$("#cox").get(0))---------第一个span的dom对象
$("#box span").get(1)(等价于:$("#pox").get(0))---------第二个span的dom对象
----记住id选择器选出来的就是这个id所在的那个元素,要转化成dom对象就.get(0),索引取第一个也只能是第一个,因为id选择器取出的不可能是一组元素
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询