但是那个问题很糟糕。
再试一次,我正试图做这样的事情:
我有一堆我想从中获取数据的元素,数据是元素子类的形式。
<div id='container'>
<span class='a'></span>
<span class='b'></span>
<span class='c'></span>
</div>
<div id='container2'>
<span class='1'></span>
<span class='2'></span>
<span class='3'></span>
</div>
我有这样的方法:
jQuery.fn.grabData = function(expr) {
return this.each(function() {
var self = $(this);
self.find("span").each(function (){
var info = $(this).attr('class');
collection += info;
});
});
};
我要运行这样的方法:
var collection = '';
$('#container').grabData();
$('#container2').grabData();
该集合应该互相添加,以便最终得到这个
console.log(collection);
abc123
但是方法中未定义集合。如何让方法知道应该添加哪个集合?
感谢。
答案 0 :(得分:2)
如果要为grabData
函数的每次调用累加值,则需要一个全局变量:
var collection = '';
jQuery.fn.grabData = function(expr) {
return this.each(function() {
var self = $(this);
self.find('span').each(function () {
var info = $(this).attr('class');
collection += info;
});
});
};
另一方面,如果您只想单独调用grabData
函数,则可以执行此操作:
jQuery.fn.grabData = function(expr) {
var collection = '';
this.each(function() {
var self = $(this);
self.find('span').each(function () {
var info = $(this).attr('class');
collection += info;
});
});
return collection;
};
然后像这样使用它:
var collection = $('#container').grabData();
console.log(collection);