我在使用Internet Explorer(7-8)中的功能时遇到了一些麻烦。我的问题是我需要隐藏一些链接,直到用户登录,我会做这个服务器端;但是,足以说我无法做到这一点。
我的方法是加载一组文本(登录/注销),它将改变服务器端并测试注销值。我是通过在Jquery中使用id加载div并使用.text()来实现这一点的,当IE 7-8都拒绝运行时,即dev工具告诉我“对象不支持此属性或方法”并带有引用返回到包含此查找的代码行。代码发布如下:
function logintest(){
login_test= "Sign out";
alert($('#log').text());
login = $('#log').text();
if(login.search(login_test) == -1){
$('#hiddenBox').css('display','none');
}
};
有趣的是警报正常运行并显示正确的文本字符串。在此失败后,我尝试使用.attr()并得到相同的结果。任何帮助都会很棒!
Jquery版本:1.4.4 网站:www.brainwellnesspro.com IE:赢得xp 7-8
答案 0 :(得分:0)
看看你的网站我首先要修复html是有效的,这不好:
<div id="log" name="<a href='http://www.brainwellnesspro.com/login.php' onclick=''>Sign in</a> or <a href='http://www.brainwellnesspro.com/login.php?action=create_account' onclick=''>Create an account</a>">
<a href='http://www.brainwellnesspro.com/login.php' onclick=''>Sign in</a> or <a href='http://www.brainwellnesspro.com/login.php?action=create_account' onclick=''>Create an account</a>
</div>
由于你已经有了jquery,你可以像这样检查登录链接的当前文本值
function logintest(){
if($("#log a").first().text() !== "Sign out"){
$('#hiddenBox').css('display','none');
}
};
答案 1 :(得分:0)
我的问题是我需要隐藏一些 链接直到用户登录,我会这样做 这个服务器端;但是,足够了 说我无法做到这一点。
为什么不呢?当然,您的应用程序应该知道用户是否已登录(并且能够以相应的方式进行相应的渲染?)
无论如何 - 没有看到你的标记(带有id ='log'的元素的上下文(这是什么类型的元素?)....
if(login.search(login_test) == -1)
应该是
if(login.search(login_test) == '-1')