0
使用Firebug我有一個TypeError - 切片不是函數。我認爲這是因爲我試圖在一個數字上使用切片,但我認爲它會是一個字符串。javascript字符串中的特殊字符
有問題的字符串是"****01814c6538032b****"
,這通過ajax命令進入頁面,但在我剛剛聲明它的時候進行測試。
hexString = "****01814c6538032b****"
....現在到我的問題了!有沒有辦法顯式聲明這是一個字符串?我可以使用toString來改變它,但是想知道我是否可以首先將它指定爲一個字符串,並確保它將保持一個。
**編輯** 這裏是所有的javascript代碼,我的代碼從hexString =開始。
<script type="text/javascript">
<!--
// Parses the xmlResponse from status.xml and updates the status box
function updateStatus(xmlData) {
var mainstat = document.getElementById('display').style.display;
var loadstat = document.getElementById('loading').style.display;
// Check if a timeout occurred
if(!xmlData)
{
mainstat = 'none';
loadstat = 'inline';
return;
}
// Make sure we're displaying the status display
mainstat = 'inline';
loadstat = 'none';
// Loop over all the LEDs
for(i = 0; i < 5; i++)
document.getElementById('led' + i).style.color = (getXMLValue(xmlData, 'led' + i) == '1') ? '#ff8b00' : '#777';
// Loop over all the buttons
for(i = 0; i < 5; i++)
document.getElementById('btn' + i).innerHTML = (getXMLValue(xmlData, 'btn' + i) == 'up') ? 'Λ' : 'V';
// Update the POT value
for(i = 0; i < 2; i++)
document.getElementById('pot'+i).innerHTML = getXMLValue(xmlData, 'pot'+i);
// Update for bargraph
for(i = 1; i < 3; i++)
{
var wd=0;
wd= (getXMLValue(xmlData, 'pot'+(i-1)))/5;
document.getElementById('bar'+i).style.width=wd+"px";
}
// Update string value
document.getElementById('test').innerHTML =
getXMLValue(xmlData, 'test');
var hexString="****01814c6538032b****";
s1 = hexString.slice(0,4);
document.getElementById("slice1").innerHTML=s1;
s2 = hexString.slice(4,6);
document.getElementById("slice2").innerHTML=h2d(s2);
s3 = hexString.slice(6,10);
document.getElementById("slice3").innerHTML=h2d(s3);
s4 = hexString.slice(10,14);
document.getElementById("slice4").innerHTML=h2d(s4);
s5 = hexString.slice(14,18);
document.getElementById("slice5").innerHTML=h2d(s5);
s6 = hexString.slice(18,22);
document.getElementById("slice6").innerHTML=s6;
tempString = h2d(s2);
sensorNo = parseInt(tempString);
tempString = h2d(s3);
humVal = parseInt(tempString);
HumidityTemp=(125/65536)*humVal;
HumidityTemp=HumidityTemp-6;
document.getElementById("slice3").innerHTML=HumidityTemp.toString();
tempString = h2d(s4);
tempVal = parseInt(tempString);
TemperatureTemp=(175.72/65536)*tempVal;
TemperatureTemp=TemperatureTemp-46.85;
document.getElementById("slice4").innerHTML=TemperatureTemp.toString();
tempString = h2d(s5) ;
voltVal = parseInt(tempString);
VoltageTemp = 2095/voltVal;
document.getElementById("slice5").innerHTML=VoltageTemp.toString();
}
setTimeout("newAJAXCommand('status.xml', updateStatus, true)",500);
function h2d(h)
{
return parseInt(h,16);
}
</script>
你怎麼使用'切片'? – Blender
XHR上的任何內容都應該以字符串的形式出現,除非您將其類型明確地設置爲其他類型,例如'arraybuffer'。 – alex
這是我如何使用它:var hexString =「**** 01814c6538032b ****」; s1 = hexString.slice(0,4); document.getElementById(「slice1」)。innerHTML = s1; –