【问题标题】:.text & .attr in Jquery not working in IEJquery 中的 .text 和 .attr 在 IE 中不起作用
【发布时间】:2011-04-02 00:34:12
【问题描述】:

我无法在 Internet Explorer (7-8) 中使用某个功能。我的问题是我需要隐藏一些链接,直到用户登录,我会做这个服务器端;但是,我只想说我无法做到这一点。

我的方法是加载一组文本(登录/注销),这些文本将更改服务器端并测试注销值。我是通过在 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:win xp 7-8

【问题讨论】:

  • 会不会是search 部分?看起来您正在字符串上使用它。我想你的意思是indexOf...
  • 您确定收到“对象不支持等”吗?调用“$('#log').text()”而不是调用“$('#hiddenBox').css('display','none')”时出错? 'hiddenBox' 是什么类型的元素?

标签: javascript jquery internet-explorer innerhtml


【解决方案1】:

查看您的网站,我首先将 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');
   }
};

【讨论】:

  • 感谢工作!我在 html 验证方面尽了最大努力(我没有编写服务器端代码,也无权访问它),错误少于 10 个,谢谢!
【解决方案2】:

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

为什么不呢?当然,您的应用程序应该知道用户是否已登录(并且能够相应地呈现不同的内容?)

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

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

应该是

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

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多