Javascript jQuery html(htmlString)未正确呈现
下面是一个jQuery函数Javascript jQuery html(htmlString)未正确呈现,javascript,jquery,Javascript,Jquery,下面是一个jQuery函数 (function($){ $.errMsg = function(obj, str){ if(typeof obj !== 'object'){ return; } // if(typeof str === 'string'){ obj.html(str); }else{ obj.html('');
(function($){
$.errMsg = function(obj, str){
if(typeof obj !== 'object'){
return;
}
//
if(typeof str === 'string'){
obj.html(str);
}else{
obj.html('');
}
};
})(jQuery);
它允许我显示错误消息,例如:
$(err).errMsg('<b>Error</b>. Invalid file(s) format or size greater than 2 Mb, please retry with different documents.');
$(err).errMsg('错误。无效文件格式或大小大于2 Mb,请使用其他文档重试');
但不管我怎么做,它都会将
标记呈现为纯文本
我用谷歌搜索了这个问题,但没有成功,我尝试了$.parseHTML,decodeURI
,但没有成功
有人能帮忙吗。提前感谢。将obj转换为有效的jQuery对象
$( obj ).html( str )
// Or even
$( obj ).clone().html( str );
// test error message
$(err).errMsg( 'p', '<b>Error</b>. Invalid file(s) format or size greater than 2 Mb, please retry with different documents.');
$(obj).html(str)
//甚至
$(obj).clone().html(str);
//测试错误消息
$(err).errMsg('p','Error.无效文件格式或大小大于2 Mb,请使用其他文档重试');
B如果您想编写jquery插件来显示错误消息,请尝试以下操作:
(function($){
$.fn.errMsg = function(str){
return this.each(function () {
var $dom=$(this);
if(typeof str === 'string'){
$dom.html(str);
console.log("here");
}else{
$dom.html('');
}
});
};
})(jQuery);
$('.my-errors').errMsg('<b>Error</b>. Invalid file(s) format or size greater than 2 Mb, please retry with different documents.');
(函数($){
$.fn.errMsg=函数(str){
返回此。每个(函数(){
var$dom=$(这个);
if(typeof str=='string'){
$dom.html(str);
console.log(“此处”);
}否则{
$dom.html(“”);
}
});
};
})(jQuery);
$('.my errors').errMsg('错误。无效的文件格式或大小大于2 Mb,请使用其他文档重试');
您使用两个参数定义$.errMsg
,但您仅使用一个参数调用它?我遗漏了什么吗?我很困惑。但是,该函数是否不需要首先使用obj
。然后是字符串?$(“#foo”).errMsg(“bar”):VM1202:1未捕获类型错误:$(…).errMsg不是函数。它可以与$.errMsg($(“#foo”),“bar”)
正确Niek
和Axnyff
。这与其说是一个插件,不如说是一个jQuery实用程序。我打赌,我刚刚意识到我使用的是jQuery实用程序函数,而不是jQuery插件。实际的插件是内置在$.fn.extend
中的,可以完美地工作。谢谢