2010-11-05 79 views
2

可能重複:
'innerText' works in IE, but not in Firefox的Javascript不能在Firefox工作

爲什麼在IE和Safari,但不能在Firefox下面的腳本工作?

<html> 

<head><script type="text/javascript"> 

function ShowHide(strTag ,strAttribute){ 

var elem = document.getElementsByTagName(strTag); 
var elem1 = evt.srcElement || evt.target; 

for (var i=0;i<elem1.children.length;i++){ 
    elem1.children[i].innerText=="4" ? elem1.children 

[i].innerText="6":elem1.children[i].innerText="4"; 
} 
    for (var i =0;i<elem.length;i++) { 
     if(elem[i].getAttribute(strAttribute)=="yes") { 
     elem[i].style.display=='none'? elem[i].style.display='block':elem 

[i].style.display='none'; 
     } 
    } 
} 

</script> 


<div id=div1 onclick="ShowHide('div','exp2');"> 
<font face=Webdings color=BLACK>4</font> click here for some expandable 

divs...</div> 
<div id=div2 exp2='yes' style="display:none;">I'm a div!</div> 
<div id=div3 exp2='yes' style="display:none;">More of them divs...</div> 
<div id=div4 exp2='yes' style="display:none;">Me too! divs...</div> 

</body> 
</html> 
+0

什麼是不正確的工作。 – Gabe 2010-11-05 20:22:56

+0

什麼?嘗試重新格式化。二進制的小塊可以幫助你進行代碼格式化,請使用它。 – 2010-11-05 20:23:27

+0

什麼不行? – 2010-11-05 20:27:14

回答

7

innerText屬性不會在Firefox上運行,該屬性是IE特有的(雖然IIRC由歌劇/鉻的支持)。

Firefox使用W3C標準Node::textContent屬性。

+0

另外'evt'從無處出現。 – 2010-11-05 20:30:59

+0

@josh,對,他需要將事件對象從* intrinsic *'onclick'事件屬性中傳遞給他的'ShowHide'函數。 – CMS 2010-11-05 20:32:54

3
  1. 我沒有看到「EVT」從何而來,但事件對象在Firefox和IE中引用不同
  2. Firefox不會有操縱

一「的innerText」屬性(即「evt」的東西讓我想知道這是如何工作,即使在IE瀏覽器。)

1

CMS是正確的,但也不完整。因爲「EVT沒有定義」

1

evt is undefined

var elem1 = evt.srcElement || evt.target; 

此行失敗,除非你傳遞從onclick處理某處不包括在你的代碼片段Firefox中的事件對象具有不知道evt是。如果您想以這種方式查找目標,請將其作爲參數傳遞給函數。