如何在jQuery元素上运行自定义函数?

3
我该如何达成这个目标?
$(".my_selected .element").myCustomFunction();

或者甚至只是这样?

$(".my_selected .element").???????(myCustomFunction());

这个函数将知道$(this)等于$(".my_selected .element")

谢谢!


这是一个关于如何操作的教程,当我写出答案时可以参考这个链接:http://blog.jeremymartin.name/2008/02/building-your-first-jquery-plugin-that.html - Ivan
请查看:http://docs.jquery.com/Plugins/Authoring - Felix Kling
5个回答

4
$.fn.myCustomFunction = function(){
    // this or $(this) is $(".my_selected .element")

}

1
这是 $('.my_selected .element') - Felix Kling
@FelixKling:嘿,用独角兽插件访问了你的个人资料 -> 结果[1, 2] - genesis
如果我理解文档正确的话,不需要使用$(this),因为this已经被包装在一个jQuery对象中了。 - aziz punjani
@Interstellar_Coder:两者都可以使用,我已经指定了“this或$(this)”。 - genesis
是的,你说得对,两者都可以使用。但是如果要处理大量元素,则最好使用 this,因为不必要地包装已经包装过的对象会影响性能,只是这样说而已。 - aziz punjani
显示剩余4条评论

3

1
你可以通过添加自己的函数来扩展jQuery的功能,方法如下:
jQuery.fn.myCustomFunction = function() {

};

如果我没记错的话,this关键字在函数内部按预期工作。


1

使用下面的代码,查看一个工作的演示在这里

(function( $ ){
  $.fn.myCustomFunction= function() {

    alert($(this).html());

  };
})( jQuery );

$(".my_selected .element").myCustomFunction();

这是扩展jQuery的简单方法


1

听起来好像你想要使用 each 函数,如果你不是在谈论实际编写 jQuery 插件的话。如果你知道从选择器返回的所有项目都支持该函数,那么你只需像这样做。

$('li').each(function(index) {
    alert(index + ': ' + $(this).text());
});

关于这种jQuery方法的更多信息http://api.jquery.com/each/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接