我有一个问题,我似乎无法识别,代码在Firefox和Chrome中运行良好,但在IE中失败。jQuery代码在Firefox中工作,但在IE中失败
,我有以下元素序列:
<tbody id="tbod161-1__" isloaded="true" style="display: none;"></tbody>
<tbody id="tbod162-2__" isloaded="true"></tbody>
我想创建一个jQuery的cookie,它存储的元素是否可见或不可见。
function RememberClickedState() {
$('.ms-listviewtable tbody[id^="tbod"]').each(function(){
tid = $(this).attr('id');
var tvisible = ($(this).attr('style') == undefined || $(this).attr('style').indexOf('display: none;') == -1);
var strVisible;
if(tvisible == true)
{
strVisible = "true";
}
if(tvisible == false)
{
strVisible = "false";
}
items += tid+':'+strVisible+';'
})
$.cookie("itemListState", items);
}
当我检索与值:
string = $.cookie("itemListState");
alert(string);
...所有的ID是在IE中设置为“真”,这意味着该值被错误地写在cookie中。但是,在Ff/Chrome中某些ID正确设置为false的情况下运行时,此代码可以很好地工作。
我错过了什么? 谢谢,
使用jQuery你可以说'$(本)。是(':visible')'...你也不需要'if/else'来将布尔值转换为字符串 - 直接在字符串连接表达式中直接使用它。 – Pointy 2012-08-12 16:21:05
尝试检查$(this).css('display')=='none',而不是读取“style”属性的值。 – sgress454 2012-08-12 16:32:06