我是Stack Overflow的新手,也是JavaScript中的新手。所以,首先,向大家問好,並提前感謝您的幫助。無法使用innerHTML
我使用Incomedia網站X5 Evolution創建網站。在其中一頁上,我想用來自服務器的數據填充表格。所以,我創建了一個表,並在每個單元格中插入此HTML代碼:
<!--#0000,0000-->
值代表行和列。我設法寫一個JavaScript來改變每個單元格的值。但是,當我想用innerHTML替換HTML pahe的內容時,它不起作用。儘管如此,由於舊的和新的html內容是相同的,所以一切看起來都是正確的。即使我只是再次使用原始變量,它仍然不起作用。
你能告訴我問題在哪裏嗎?
下面的JavaScript代碼:
<script>
var i;
var div = document.getElementById('imTableObject_1');
div = document.getElementsByTagName('table');
var htmlContent = div[0].innerHTML;
var newHtmlContent = div[0].innerHTML;
var test = div[0].innerHTML;
var row,col;
//I can't understand why the scrip stop running at this line. I didn't change anything...
div[0].innerHTML = newHtmlContent ;
for (i=htmlContent.length - 5; i > -1; i--) {
if(htmlContent.charAt(i)=='#') {
//alert(i);
//alert(htmlContent.substring(i+6,i+10));
row = parseInt(htmlContent.substring(i+1,i+5));
col = parseInt(htmlContent.substring(i+6,i+10));
newHtmlContent = insertText(row,col,newHtmlContent,i);
};
};
alert(div[0].innerHTML);
alert(newHtmlContent);
//This does not work
div[0].innerHTML = newHtmlContent ;
alert("Done !");
function insertText (row, col, text, index) {
var length;
var newText;
length = getTextLength (text,index + 13);
//alert(htmlContent.substring(index+13,index+13+length));
newText = text.substring(0,index+13);
newText += "Titi too !";
newText += text.substring(index+13+length,text.length);
//alert(newText);
return newText ;
}
function getTextLength (text,startIndex) {
var i = 0;
for(i = startIndex ; i < text.length ; i++) {
//alert(text.substring(i,i+7));
if(text.substring(i,i+7) == "</span>") {
return i - startIndex ;
};
};
return -1;
}
</script>
確定'如果(htmlContent.charAt(I)== '#'){'是有史以來真的嗎?而周圍的'for'循環運行正確嗎? – Ian 2013-04-24 15:18:31
你從警報中得到什麼? – 2013-04-24 15:19:11
也可以包含HTML嗎?它可能會幫助 – 2013-04-24 15:22:28