我是Stack Overflow和JavaScript的新手。所以,首先,向大家问好,并提前感谢您的帮助。
我正在使用Incomedia Website 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>
答案 0 :(得分:0)
你设置:
var newHtmlContent = div[0].innerHTML;
然后:
div[0].innerHTML = newHtmlContent ;
您将其内容设置为其内容。因此,不会发生任何变化。
答案 1 :(得分:0)
将第3行更改为
div = document.getElementsByTagName('td');
查找<td>
代码而非<table>
代码。 <table>
无法直接存储文本数据,因此我猜他们的innerHTML
也无法正常工作。
我设法让它在这里工作:http://jsfiddle.net/mgabor/ZMaW6/1/