我有一个 div,我曾经html()
更改过它的内容。我正在做一个“取消”按钮,我想html()
回到原来的值。
有没有一种有效的方法来做到这一点?我试图避免再次使用 html() 整个代码,因为它看起来不太好并且可能不是最佳实践。
提前非常感谢。问候
我有一个 div,我曾经html()
更改过它的内容。我正在做一个“取消”按钮,我想html()
回到原来的值。
有没有一种有效的方法来做到这一点?我试图避免再次使用 html() 整个代码,因为它看起来不太好并且可能不是最佳实践。
提前非常感谢。问候
// store the old content
var myOldContent = $("#cancelbutton").html();
// change content
$("#cancelbutton").html(someNewContent);
// and change it back
$("#cancelbutton").html(myOldContent);
如果可能的话,不要使用.html
这种方式切换内容——使用两个相邻的、几乎相同的元素,一个使用旧 HTML,一个使用新 HTML,并创建一个hidden
CSS 类display: none
并将其分配给第二个元素。hidden
然后同时在两个元素上切换此类。
HTML:
<button class="cancel" id="cancel-original">Cancel</button>
<button class="cancel hidden" id="cancel-second">Cancelling...</button>
CSS:
.hidden {
display: none;
}
查询:
$('button.cancel').click(function() {
$('button.cancel').toggleClass('hidden'); // toggles both at once
});
您可以在创建时使用 jQuery 克隆它,当您取消时,删除它并重新克隆旧版本。
浏览器不跟踪原始值。
但是,您可以在页面加载时自己将原始 HTML 存储到变量中。
您可以将之前的 HTML 内容保存到一个变量中,然后在取消时从该变量中恢复。
var previousHtml = $('#someElement').html();
然后
$('#someElement').html(previousHtml);
在更改之前,您需要将其保存在变量中:
<script>
var origHTML = $("#divid").html();
function ResetDiv(){
$("#divid").html(origHTML);
}
</script>
通过使用jQuery 的 data() 函数,您可以轻松地在内部保存原始值,然后使用以下内容恢复它:
$('#a').click(function(){
$('div').data('store',$('div').html()).html('foo');
});
$('#b').click(function(){
$('div').html($('div').data('store'));
});
jsFiddle 示例。(请注意,此示例仅用于说明如何使用 data() 存储值,而不是用于生产代码。)