使用Javascript

时间:2015-12-02 14:52:53

标签: javascript html json

我正在使用Javascript创建一个动态表来显示我从JSON对象解析的数据。我还想在表格的一个单元格中添加一个图像,我会直接从JSON对象获取HTML代码,如下所示:

jsonObject[0].Image = <img src="../img/img1.jpg"></img>

问题在于,如果我只是尝试将td元素的内容设置为该Json元素,则将其视为字符串而不显示为图像(注意:当我直接显示结果时,此方法正常工作我对数据库进行了查询,但现在我更改了实现以将结果作为JSON对象回显),所以我尝试通过javascript创建一个img元素并将源设置为我想要使用的图像,但没有显示,不仅仅是它阻止了整个表的显示。

有谁知道如何解决这个问题?这是我的JS代码:

var oReq = new XMLHttpRequest(); //New request object
oReq.onload = function() {
    console.log(this.responseText);
    var Json = JSON.parse(this.responseText);
    var newTable = document.getElementById('Prodotti');

    //Create first row
    var tableRowFirst = document.createElement('tr');

    for (key in Json.prods[0]) {
        //create new heading
        var keys = document.createElement('th');

        // append Heading to table
        tableRowFirst.appendChild(keys);

        //set new heading text content to json information
        keys.textContent = key;
    };

    newTable.appendChild(tableRowFirst);
    var tableBody = document.createElement('tbody');
    newTable.appendChild(tableBody);

    for (i=0; i<Json.prods.length; i++){
        //Create rows
        var tableRow = document.createElement('tr');

        for (key in Json.prods[i]) {
                //create new heading
                var values = document.createElement('td');

                // append Heading to table
                tableRow.appendChild(values);

                //set new heading text content to json information
                values.textContent = Json.prods[i][key];

                if (key == "Immagine"){
                    values.setAttribute("id", "TD");
                    var img = document.createElement("img");
                    img.src = "../img/"+Json.prods[i].Nome+".jpg";
                    document.getElementById("TD").appendChild("img");
                }

        };

        tableBody.appendChild(tableRow);
    }
    };
oReq.open("get", "../php/getalltag.php", true);
oReq.send();

1 个答案:

答案 0 :(得分:0)

由于我创建了td元素,我想附加一个子元素,JavaScript无法通过其ID找到它。改变了行

document.getElementByID("TD").appendChild(img);

 values.appendChild(img);
一切顺利。我猜测问题是这个元素在文档中仍然不存在,所以JavaScript无法找到它。我通过在Chrome中使用开发者控制台了解了这一点,以便为未来的我和未来的新手开发人员提供一些建议:在测试新网页时按F12:)