0

我有一个小困境。我正在动态尝试根据 SQL 响应将表格单元格 html 设置为图像。我下面的方法不起作用..

var data = document.createElement("td");

if  (response.getElementsByTagName('status')[i].childNodes[0].nodeValue=='unread') {

    data.setAttribute('id', 'emailunread');
    data.innerHTML="<img src ='/img/unread.png' width='64' height='64'>";
    else {

    data.setAttribute('id', 'emailread'); }
    data = '<img src="img/read.png>'; }

有什么想法我可能做错了吗?

4

2 回答 2

0

您需要用右if花括号关闭语句块。

if (response.getElementsByTagName('status')[i].childNodes[0].nodeValue=='unread') {

    data.setAttribute('id', 'emailunread');
    data.innerHTML="<img src ='/img/unread.png' width='64' height='64'>";
} else {

    data.setAttribute('id', 'emailread');
    data = '<img src="img/read.png>'; 
}

此外,正如 Bergi 所指出的,您正在用else子句中的一些 HTML 覆盖包含您的 DOM 元素的变量。

于 2012-12-15T20:54:48.553 回答
0

您忘记使用最后一行中的innerHTML属性。而不是用字符串覆盖变量:

data = '<img src="img/read.png>';

你要

data.innerHTML = '<img src="img/read.png>';

此外,您的块似乎没有正确关闭,}倒数第二行还有一个额外的。不确定这些是否只是 c&p 错误或您的实际问题。

顺便说一句,您应该将 的值分配response.getElementsByTagName('status')给一个变量并对其进行循环(我假设这i是一个迭代变量),而不是每次都查询 DOM。

于 2012-12-15T20:55:07.977 回答