制作一个jquery函数来返回元素

时间:2014-07-09 20:59:38

标签: javascript jquery function

我正在创建一个jquery函数来返回元素。

基本上没有函数我编写代码如下所示,它引入了带换行符的html换行符。

var $li = $('ol#update > li');

$li.each(function(i, e) {

    var $txt = $(e).find('.com_msg_text');

    var txt = $txt.html();          

    txt = line_break(txt);

    $txt.html(   txt  );

});

现在我正在写一个函数来做同样的事情 -

function test() {

    $(this).each(function(i, e) {

        $(e).html( line_break($(e).html()  ) );

    });
    return this;
}

我打电话通过 -

 $('ol#update li').find('.com_msg_text').test();

但这不会运行并给出错误

未捕获的TypeError:undefined不是函数

3 个答案:

答案 0 :(得分:1)

jQuery原型没有名为test的函数。这就是您收到错误消息的原因。

您希望使用jQuery.fn.extend()扩展jQuery原型并创建自己的test函数:

$.fn.test = function() {
    return this.each(function(i, e) {
        $(e).html( line_break($(e).html()) );
    });           
}

each已经可以链接,因此您不必明确返回this

答案 1 :(得分:0)

请在stackoverflow上查看此答案,了解有关如何扩展jQuery原型的更多详细信息。

答案 2 :(得分:0)

现在,如果我只使用jQuery.fn.extend -

jQuery.fn.extend({ 
   test: function() {
      return this.each(function() {         
         this.innerHTML = line_break(this.innerHTML);
    });    
}

});

使用jQuery的方法相同 -

jQuery.fn.extend({ 
  test: function() {
     return this.each(function(i, e) {         
        $(e).html ( line_break($(e).html()) );
   });    
  }
});