2014-02-18 68 views
0

我正在嘗試爲我的E-learning項目使用一些實體。 我用來從數組HTML實體輸入值?

var equationValue = new Array("",'−'+1,0,2,3); 

,這裏是我的代碼

<html> 
    <head> 

    <script type="text/javascript"> 
     var equationValue = new Array("",'&#8722;'+1,0,2,3); 
     function func(){ 
     document.getElementById('t_1_1').value = equationValue[1]; 
     } 
</script> 
</head> 

<body onload='func();'> 
    <input type='text' id='t_1_1' /> 
</body> 

</html> 

但輸入值似乎不支持HTML實體動態地更改輸入字段。

幫助我如何使用HTML實體來輸入值。這是我的working Example

+0

我搜索了一些內容。它並沒有幫助我.. 在此先感謝:-) – Veeramani3189

+0

看看這是否有幫助http://stackoverflow.com/questions/5796718/html-entity-decode – elclanrs

+0

而不是'新陣列(「」,'− '+1,0,2,3);'使用數組literal最好更好:'[「」,'−'+1,0,2,3];' – RobG

回答

0

你需要做的是直接將實體作爲文本粘貼到輸入中或使用函數將它從實體值轉換爲文本。

var equationValue = new Array("",'−'+1,0,2,3); 

所以......它看起來像

<html> 
    <head> 

    <script type="text/javascript"> 
    var equationValue = ["",'&#8722;'+1,0,2,3];; 

function func(){ 
    var mdiv = document.createElement("div"); 
    mdiv.innerHTML = equationValue[1]; 
    document.getElementById('t_1_1').value = (mdiv.textContent || mdiv.innerText); 
} 

</script> 
</head> 

<body onload='func();'> 
    <input type='text' id='t_1_1' /> 
</body> 

</html> 
+0

謝謝@約瑟夫......非常感謝。 :-) – Veeramani3189

+0

條形腳本和HTML標籤部分是完全不必要的(如果不是,那麼容易出錯)。另外,IE 8及更低版本不支持textContent。另外,考慮使用數組文本而不是數組構造函數要好得多,因爲後者的行爲取決於提供的參數的數量。 – RobG

+0

@ Veeramani3189我主要是爲任何可能嘗試使用該解決方案的人更新,因爲它更乾淨。信貸去發佈的其他人,但我不希望接受的答案是最糟糕的:) – Joseph

1

你可以試試這個:

var equationValue = new Array("",'&#8722;'+1,0,2,3); 
    function func(){ 
    var mdiv = document.createElement("div"); 
    mdiv.innerHTML = equationValue[1]; 
    document.getElementById('t_1_1').value = (mdiv.textContent || mdiv.innerText); 
} 
+0

* innerText *不被所有正在使用的瀏覽器支持,它是一種IE方法,已被其他瀏覽器複製。您可以使用'... =(mdiv.textContent || mdiv.innerText);'或同等瀏覽器支持。 – RobG

+0

@RobG:謝謝你指出這一點,我更新了我的答案。 –

0

相反'&#8722;'的,使用'\u2212'。在JavaScript中,&#8722;就是這樣的7個數據字符(儘管有些方法可以使JavaScript解釋器將其作爲HTML字符引用進行處理)。引用字符串中的字符的一般JavaScript換碼符號是\uxxxx,其中xxxx是指定Unicode代碼號的四個十六進制數字。在十六進制數8722是01212.

或者,使用'−',其中包含字符U + 2212減號符號,只要包含您的JavaScript代碼的文件是UTF-8編碼和聲明如此。輸入MINUS SIGN的方式取決於您的編輯程序和底層系統。

該代碼還有其他問題,在其他答案和評論中討論過,但這應該回答所問的問題。

+0

爲什麼數字「8722」變成了「2122」? – evolutionxbox

+0

以十六進制(基數16)系統表示時,數字8722(十進制)變爲2122。 HTML符號'−'具有十進制數字; JavaScript符號'\ u2122'需要十六進制的數字。 –