Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Jquery 如何将html内容还原为其原始值?_Jquery - Fatal编程技术网

Jquery 如何将html内容还原为其原始值?

Jquery 如何将html内容还原为其原始值?,jquery,Jquery,用户按下div中的一个键后,html被设置为“”。但是,在用户离开div之后,我希望将html设置回其原始值。我该怎么做 到目前为止,我有以下代码: $(document).one('keypress',"#id",function() { $(this).html(""); }).focusout(function(){ //do something }); 也许是这样的: var orig; $(document).one('keypre

用户按下div中的一个键后,html被设置为“”。但是,在用户离开div之后,我希望将html设置回其原始值。我该怎么做

到目前为止,我有以下代码:

$(document).one('keypress',"#id",function() { 
        $(this).html("");
    }).focusout(function(){
        //do something 
    });

也许是这样的:

var orig;
$(document).one('keypress',"#id",function() { 
        orig = $(this).html();
        $(this).html("");
    }).focusout(function(){
        //do something 
        $(this).html(orig);
    });

使用
.data()
将其缓存在元素本身中:


我更喜欢这种方法,因为通过将数据存储在
this
,它可以与任何选择器一起工作,包括那些匹配多个DOM元素的选择器。您只需确保
data()
变量(
'html'
此处)未被页面上的任何其他代码使用。

您需要将该值存储在变量中,以便在调出焦点后恢复该值

var divValue;
$(document).one('keypress',"#id",function() { 
    divValue = $(this).html();
    $(this).html("");
}).focusout(function(){
    $(this).html(divValue);
});
那么:

(function()
{
    var html = null;
    $(document).one('keypress',"#id",function() { 
        html = $(this).html();
        $(this).html("");
    }).focusout(function(){
        //do something 
        $(this).html(html);
    });
})();
我将它包装在一个自动执行的匿名函数中,这样就可以将
html
变量保留在主范围之外

或者以更jQuery的方式:

$(document).one('keypress',"#id",function() { 
    $(this).data('orightml', $(this).html());
    $(this).html("");
}).focusout(function(){
    //do something 
    $(this).html($(this).data('orightml'));
});
这样我们就可以根据元素存储原始html

$(document).one('keypress',"#id",function() { 
    $(this).data('orightml', $(this).html());
    $(this).html("");
}).focusout(function(){
    //do something 
    $(this).html($(this).data('orightml'));
});