制作jQuery插件时,是否可以接受文本字符串而不是元素?
例如,而不是
$("#someelement").myPlugin();
:
$('Some text string').myPlugin();
此外,是否可以允许多个参数?
例如,$('Text here', 'Another text').myPlugin();
我一直在研究,$()
似乎只用于选择DOM元素。但是,不可能不使用它。当我仅使用$.myPlugin();
尝试我的测试功能时,它没有用。
因此,对于这种事情我应该只使用一个功能吗?是否仅在定位DOM元素时使用jQuery插件(即$("p").greenify();
示例)。或者像使用params的常规函数一样使用它们是否可以接受?
答案 0 :(得分:3)
jQuery“plugins”只是jQuery对象的原型。因此,在调用像$('text')
这样的构造函数时,它实际上“使用参数text
”(jQuery会将其视为选择器)。
如果你只是想创建一个用于操作文本的“插件”,这里有一个简单的方法:
myPlugin('Text here', 'Another text');
如果您喜欢,可以扩展String原型:
String.prototype.myPlugin = function(suffix) {
return this+suffix
};
'mytext'.myPlugin('.com') // -> mytext.com
答案 1 :(得分:1)
您可以将插件设计为接受字符串作为参数...
然后在jquery选择中使用它
$('#myid').myPlugin('some text');
甚至只是作为常规功能
myPlugin('some text');
答案 2 :(得分:0)
我不明白你的问题 - 你想做什么?
如果你想在不选择DOM节点的情况下只调用插件,大多数jquery扩展会将自己注册到$ .fn:
$.fn.my_pluginname
在元素上调用它的一些可能性:
$('#my-css-id').myPlugin();
$('<div class="justCreatedNow">content</div>').appendTo('body').myPlugin();