.text & .attr в Jquery не работает в IE - PullRequest
0 голосов
/ 02 апреля 2011

У меня возникли проблемы с получением функции для работы в Internet Explorer (7-8). Моя проблема в том, что мне нужно скрывать некоторые ссылки, пока пользователь не войдет в систему, я бы делал это на стороне сервера; однако достаточно сказать, что у меня нет возможности сделать это.

Мой подход состоял в том, чтобы загрузить набор текста (логин / выход), который изменит сторону сервера и проверит значение выхода из системы. Я делал это, загружая div по id в Jquery и используя .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: 7-8 на победу xp

Ответы [ 2 ]

0 голосов
/ 02 апреля 2011

Моя проблема в том, что мне нужно скрыть некоторые ссылки, пока пользователь не войдет в систему, я бы сделал это на стороне сервера;однако достаточно сказать, что у меня нет способа сделать это.

Почему бы и нет?Конечно, ваше приложение должно знать, вошел ли пользователь в систему или нет (и сможет ли он по-разному соответственно отображаться?)

- не видя вашей разметки (в контексте элемента с id = 'log' (чтотип элемента это ???) ....

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

должно быть

if(login.search(login_test) == '-1')
0 голосов
/ 02 апреля 2011

Глядя на ваш сайт, я бы начал с исправления 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');
   }
};
...