大佬教程收集整理的这篇文章主要介绍了jQuery第一个父包含所有的孩子,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
<body> <dl> <dt>Items:</dt> <dd> <ul> <li>Item 1<div class="item-info">...</div></li> <li>Item 2<div class="item-info">...</div></li> <li>Item 3<div class="item-info">...</div></li> </ul> </dd> </dl> </body>
我想要这样的东西:
$('.item-info').commonParent();
它将返回相当于:
[$('ul')]
jQuery.fn.commonAncestor = function() { var parents = []; var minlen = Infinity; $(this).each(function() { var curparents = $(this).parents(); parents.push(curparents); minlen = Math.min(minlen,curparents.length); }); for (var i in parents) { parents[i] = parents[i].slice(parents[i].length - minlen); } // Iterate until equality is found for (var i = 0; i < parents[0].length; i++) { var equal = true; for (var j in parents) { if (parents[j][i] != parents[0][i]) { equal = false; break; } } if (equal) return $(parents[0][i]); } return $([]); }
例
<html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script src="jquery.commonancestor.js"></script> $(function() { console.log($(".item-info").commonAncestor()); }); </script> <body> <dl> <dt>Items:</dt> <dd> <ul> <li>Item 1<b><div class="item-info">...</div></b></li> <li>Item 2<u><div class="item-info">...</div></u></li> <li>Item 3<i><div class="item-info">...</div></i></li> </ul> </dd> </dl> </body>
这并没有经过严格的测试,所以请指出你看到的任何错误.
编辑返回父代替$(父)
EDIT在IE8中不工作
以上是大佬教程为你收集整理的jQuery第一个父包含所有的孩子全部内容,希望文章能够帮你解决jQuery第一个父包含所有的孩子所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。