这可能听起来很奇怪,但我正在研究一个需要在div中找到元素的插件,或者div本身.
脚本根据用户选择查找元素,但内容(包括标记)是可变的.因此脚本将按如下方式查找元素:
$('.block').find(selector); // selector set by user
但是没有一种简单的方法让选择器选择’.block’.使用find之前的Selecting the parent不是解决方案,因为有多个’.block’元素.
我知道扩展expr [“:”]选择器不起作用,因为它只是在寻找孩子.但是,我确实找到了一种方法来“duck punch”这个方法,通过制作一个’:self’选择器:
(function($){ var orig = $.fn.find; $.fn.find = function(sel){ return (sel === ':self') ? this : orig.call(this,sel); } })(jQuery)
但这似乎有点过头了.而且每次查找函数都会减慢jQuery的处理速度.还有另一种方法吗?
谢谢你的回答!但我最终做到了这一点:
var b = $('.block'),el = (b.is(selector)) ? b : b.find(selector);