这就是应该发生的事情。每次用户单击按钮时,div 的文本都会发生变化。我已经完美地完成了这个工作(感谢之前的问题)。每次点击都会生成一个带有一些随机文本的 cookie,然后这些文本会出现在 div 中。有 5 个 div(每个 cookie 一个)被填满,然后第一个被覆盖(在第 6 次点击时)。就像我说的,这是完美的。
但是,当有人第一次点击时,第一个 div 的文本正确显示,但“未定义”出现在其他 4 个 div 中(因为其他 cookie 尚未定义)。我想这是基于代码的预期。但是,我希望这样,如果这些 div 的内容是“未定义的”,那么 div 仍然是隐藏的。
这是div的代码:
<div id="textDiv" class="div"></div>
<div id="textDiv1" class="div1"></div>
<div id="textDiv2" class="div2"></div>
<div id="textDiv3" class="div3"></div>
<div id="textDiv4" class="div4"></div>
这是填写每个 div 的代码(但重复 5 次以覆盖所有 5 个 cookie 和 5 个 div ......省去所有这些以节省空间:
<script>
$(document).ready(function(){
$("form").click(function () {
var div = document.getElementById("textDiv");
div.textContent = $.cookie('cookie_1');
var text = div.textContent;
})
});
</script>
<script>
$(document).ready(function(){
$("form").click(function () {
var div = document.getElementById("textDiv1");
div.textContent = $.cookie('cookie_2');
var text = div.textContent;
})
});
</script>
ETC...
就像我说的,这很好用,但是在 cookie 全部设置之前 div 会显示“未定义”。我试过这个:
<script>
$(document).ready(function(){
$("form").click(function () {
var $cook1 = $.cookie('cookie_1');
var $cook2 = $.cookie('cookie_2');
var $cook3 = $.cookie('cookie_3');
var $cook4 = $.cookie('cookie_4');
var $cook0 = $.cookie('cookie_0');
})
});
</script>
<script>
$(document).ready(function(){
$("form").click(function () {
if(typeof cook2 == 'undefined'){
$('textDiv1').hide();
}
else {
var div = document.getElementById("textDiv1");
div.textContent = $.cookie('cookie_2');
var text = div.textContent;
}
})
});
</script>
ETC...
当 cookie(以及 div 中的文本)未定义时,这会隐藏 div。唯一的问题是,一旦定义了 cookie(再次单击表单后),它就不会取消隐藏。它似乎没有“重新检查”它是否被定义。这对我来说很奇怪,因为它似乎在每次点击时都会检查 cookie,因为 div 中的文本会随着 cookie 的变化而变化。
知道怎么做吗?
(是的,我假设我的代码太复杂了,有很多方法可以简化,但我是新手,所以我会采纳你的所有建议。)
(注意:我省略了生成 cookie 的代码,它工作正常,我认为不适用于答案。)
谢谢!