Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery html(htmlString)未正确呈现_Javascript_Jquery - Fatal编程技术网

Javascript jQuery html(htmlString)未正确呈现

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('');

下面是一个jQuery函数

(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
中的,可以完美地工作。谢谢