2011-04-02 91 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')