我正在创建一个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不是函数
答案 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()) );
});
}
});