2011-04-02 92 views
0

我在使用Internet Explorer(7-8)中的函数时遇到了一些麻烦。我的问题是,我需要隐藏一些链接,直到用户登录,我会做这个服务器端;但是,足以说我无法做到这一点。.text&.attr in jquery not in the IE

我的方法是加载一组文本(登录/注销),这将改变服务器端并测试注销值。我这样做是通过在Jquery中通过id加载div来实现的,当IE 7-8拒绝运行时,使用.text(),即开发工具告诉我“对象不支持该属性或方法”到包含此查找的代码行。代码如下:

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:7-8 Win XP的

+1

难道是'search'一部分吗?看起来你正在使用它的字符串。我想你的意思是'indexOf' ... – sdleihssirhc 2011-04-02 00:44:03

+0

你确定你收到了“对象不支持等”的错误调用“$('#log')。text()”而不是调用“$('#hiddenBox')。css('display','none')”?什么类型的元素是'hiddenBox'? – 2011-04-02 01:43:10

回答

0

看你的网站我会通过固定的HTML是有效启动,这ISN”牛逼好:

<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'); 
    } 
}; 
+0

谢谢你的工作!我做了最好的我可以在HTML验证(我没有写服务器端代码,也没有访问它)下降到10个以内的错误,谢谢! – Dragonman117 2011-04-04 21:26:50

0
登录链接的当前text值

我的问题是,我需要隐藏一些 链接,直到用户登录,我会做 这个服务器端;然而,足够到 说我没有办法做到这一点。

为什么不呢?当然你的应用程序应该知道用户是否登录(并且能够相应地渲染)

无论如何 - 没有看到你的标记(与id ='log'元素的上下文(什么类型的元素,此???)....

if(login.search(login_test) == -1) 

也许应该

if(login.search(login_test) == '-1')