我可能会遗漏一些必要的东西。
我正在使用此功能更改某些SVG文本元素中的日期格式。
jQuery.fn.fixDateformat = function(){
ar = $(this).text().split("/")
output = [ar[1], ar[0], ar[2]].join(".")
$(this).text(output)
};
在控制台中,我得到了一个我想要改变的元素数组。
> array = $("text[x='0']")
[
<text y="5" dy=".71em" text-anchor="middle" x="0">04/21/13</text>,
<text y="5" dy=".71em" text-anchor="middle" x="0">04/26/13</text>,
<text y="5" dy=".71em" text-anchor="middle" x="0">05/02/13</text>,
<text y="5" dy=".71em" text-anchor="middle" x="0">05/08/13</text>,
<text y="5" dy=".71em" text-anchor="middle" x="0">05/14/13</text>
]
当我将函数传递给其中一个元素时,它可以工作。 Yeay!
> array.first().fixDateformatOnCharts()
但是,当我遍历数组时,我得到了这个错误。
> array.each(function(i,v){ v.fixDateformatOnCharts()})
TypeError: Object #<SVGTextElement> has no method 'fixDateformatOnCharts'
有什么想法吗?
答案 0 :(得分:2)
您应该使用$(v)
将元素v
转换为jQuery对象。
array.each(function(i,v){ $(v).fixDateformatOnCharts(); });
也许将这个功能添加到插件本身会更好:
jQuery.fn.fixDateformat = function() {
return this.each(function(i, el) {
ar = $(el).text().split("/");
output = [ar[1], ar[0], ar[2]].join(".");
$(this).text(output);
});
};
所以你可以使用array.fixDateformat();
。