Jquery 如何将html内容还原为其原始值?
用户按下div中的一个键后,html被设置为“”。但是,在用户离开div之后,我希望将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
$(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'));
});