求助 jquery的选择器

moonlightme 2012-07-26 02:28:08
我有一组元素, 格式如下

<ul>
<li><input type="checkbox" id="1"/>1</li>
<li><input type="checkbox" id="2"/>2</li>
<li><input type="checkbox" id="3"/>3
<ul>
<input type="checkbox" id="4"/>4
<input type="checkbox" id="5"/>5
<ul>
</li>

</ul>


我想要做的事情是在点击id为3的checkbox时,取出他同一级下的所有元素,就是1 2 3的checkbox和3下的ul集合.
目前用的方法是$(this).parentsUntil("ul") 这个方法返回的对象竟然不是父级对象,而是3自己和下面的4和5. 而在点击4的时候,取出的只有4自己. 是这个方法的问题还是我使用的问题.$(this).siblings()达到的结果和上面一样.只是在点击4的时候返回null
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
温柔哥 2012-07-26
  • 打赏
  • 举报
回复
跟你解释一下吧
var parents = $(this).parentsUntil();//这个里面随便你填ul或者div 或者某个节点的ID 都行..
然后parents 就是一个array对象
比如你现在的层次是


当前的 this是一个li 上一层是个ul 然后再上两层都是div 再上一层是body
现在想取的是body的话(里面什么都不填好像也是只往上一层还是一直上到顶层除了body,这个我没测试过,你可以自己试一下.如果你就是想到ul那一层 你就填入ul应该就行了. var parents = $(this).parentsUntil('ul');.).
那么parents 里面就是 [li, ul, div1, div2]
var divparent = $(parents[parents.length-1]).parent();
//$(parents[parents.length-1])就等于 div2 div2的parent就是body了..
moonlightme 2012-07-26
  • 打赏
  • 举报
回复
不是我不想用$(this).parent(). 只是元素层深不固定. 我不知道要跳几层,所以才用parentsUntil.
不过1楼的方法确实可行. 虽然看不太懂
温柔哥 2012-07-26
  • 打赏
  • 举报
回复
老实的用$(this).parent()就行了.如果非要用parentsUntil的话

这样用就行了
var parents = $(this).parentsUntil();
var divparent = $(parents[parents.length-1]).parent();
其实还没有$(this).parent()这个好用..直接就往上跳1级.
..这个parentsUntil返回的数组(这parents是复数形式,里面是dom对象的集合,要使用的话还得重新封装成jquery对象)中刚好不包括满足选择器参数条件(感觉有点拗口,就是说 你现在填的是ul ul就不被包括进去)的对象。这个有点奇怪,很容易产生误导.
其实我也说不太清楚,这里有个地址 可以进去查一下你就知道了..http://cache.baidu.com/c?m=9d78d513d99b02e80faddf690d6795355903dc257d908c53248a870fd33a541b0120a1ac26510d198b863b3041e44b5ffdf041246c507ce1c09bd45dddccc37570956569315a9b4110d019b8cb3027c237902ceaab04e4bcf73091acd4d5&p=9c3bd61b85cc42af1ef5c4710e16d77c&user=baidu&fm=sc&query=jquery+parentsUntil&qid=f007a4201ae9cfbb&p1=2或者http://jquery01.diandian.com/post/2012-01-16/14500044

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧