我正在努力解决将图片附加到<td>
- 元素的问题。不幸的是,我无法向您展示一个完整的jsfiddle(值计算相当复杂),但我希望一些代码片段足够。
表-结构:
var table = createElement('table');
var header = table.createTHead();
var row = header.insertRow(0);
var cell0 = row.insertCell(0);
cell0.innerHTML = "Indikator"
var cell1 = row.insertCell(1);
cell1.innerHTML = "In dieser Region"
var cell2 = row.insertCell(2);
cell2.innerHTML = "Alle Regionen: Höchster Werte"
var cell3 = row.insertCell(3);
cell3.innerHTML = "Alle Regionen: Niedrigster Werte"
var cell4 = row.insertCell(4);
cell4.innerHTML = "Alle Regionen: Durchschnitt"
var cell5 = row.insertCell(5);
cell5.innerHTML = "Bewertung";
tbody = table.appendChild(document.createElement('tbody'));
然后我使用for循环,其中创建了表的其余部分:
for (var key in values) {
//...
//method to calculate some values
...
//append values to tbody
$(table).find(tbody).append("<tr>");
$(table).find(tbody).append( "<td>"+(indicatorValue)+"</td>");
$(table).find(tbody).append( "<td>"+(regionValue)+"</td>");
$(table).find(tbody).append( "<td>"+(bestValues)+"</td>");
$(table).find(tbody).append( "<td>"+(worstValues)+"</td>");
$(table).find(tbody).append( "<td>"+(average)+"</td>");
$(table).find(tbody).append( "<td>"+ createIndicator(picIdentifier));
}
所有方法都正常工作,但我在最后一部分有一些问题, createIndicator(picIdentifier),它用于指代图像源。
function createIndicator(state) {
var img = document.createElement('img');
if (picIdentifier == 'green') {
img.src = "img/green_circle.png";
} else {
img.src = 'img/red_circle.png';
}
return img;
}
出现我的问题:图片未创建,但只针对图片应位于的每个单元格[object HTMLImageElement]
。您可以在此处查看:http://imgur.com/WAtplY7
我尝试了一些解决方法,并且还得到了一个结果,其中图像将使用$(table).find(tbody).append(createIndicator(picIdentifier));
创建,但是我不会在表格单元格中创建图像。请在此处查看它的外观:http://imgur.com/7POq3wn
从你那里得到一些提示会很棒:)
答案 0 :(得分:3)
我希望这会有用,不要去做功能
var img = "<img src='img/green_circle.png' />";
if(picIdentifier != 'green')
{
img = "<img src='img/red_circle.png' />";
}
$(table).find(tbody).append( "<td>"+ img +"</td>");
你不能返回元素,它总会返回对象,所以你要么将它附加到函数中,要么使用我的代码。
答案 1 :(得分:0)
如果您使用的是Firefox或Chrome,请右键单击图像,然后选择Inspect Element,以检查是否存在任何潜在的DOM错误。请记住,它必须包含在<td></td>
中。