所以我有一个jQuery函数:
$("#el01").myFunc();
$("#el02").myFunc();
$("#el03").myFunc();
是否有简单的方法可以找出DOM中哪些元素已绑定到该函数,而无需在对象或数组中手动存储引用?
答案 0 :(得分:0)
有几个常见的选择!
一种常见的方法是用类或数据属性来装饰元素,如果你触摸它们(留下足迹),那么你可以用选择器查找它们:
$('.myFuncified')...
或者你可以将它们留在一个存储状态的对象中(你说你不想这样做......这很公平)。
但是除非你留下一些足迹,否则没有办法发现你已经触及了一个元素。
答案 1 :(得分:0)
这里的核心问题是什么是myFunc ?这是真正的罪魁祸首。可以轻松修改它以了解它的作用。
(function(){
var stored = $.myStored = [];
$.fn.myFunc = function(args){
this.each(function(){ stored.push(this); });
}
})()
现在您可以轻松访问存储的元素。当然有几种方法可以实现这一点,但是想法是原型函数必须记录它遇到的元素。
在您的示例中,您可以使用上面的代码段
执行此操作
(function(){
var stored = $.myStored = [];
$.fn.myFunc = function(args){
this.each(function(){ stored.push(this); });
}
})()
$("#el01").myFunc();
$("#el02").myFunc();
$("#el03").myFunc();
$($.myStored).css('color','red');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="el01">el01</div>
<div id="el02">el02</div>
<div id="el03">el03</div>
&#13;