javascript - innerHTML 没有更新

标签 javascript html

我正在尝试从字符串中获取数据,并且想将其显示在我的 html 中。

这是我尝试过的代码

var jsn = {
        "channels": [{
            "name": "video1",
                "image": "images/bodyguard.jpg"
        }, {
            "name": "video2",
                "image": "images/bodyguard.jpg"
        }, {
            "name": "video3",
                "image": "images/bodyguard.jpg"
        }, {
            "name": "video4",
                "image": "images/bodyguard.jpg"
        }, {
            "name": "video5",
                "image": "images/bodyguard.jpg"
        }]
    };
    var id = document.getElementById("menu_list");
    var inHtm = "";
    var channels = jsn.channels.length;
    var cha = jsn.channels;
    alert("channels : " + channels);

    if (channels != undefined) {
        for (var i = 0, len = channels; i < len; ++i) {
            var item = cha[i].name;
            alert(item);
            //var name = item.name;
            var image = cha[i].image;

            inHtm += '<div class="menu"><a href="javascript:void(0);" onkeydown="Main.keyDown();" >';

            inHtm += '<img src="' + image + '"/>';
            inHtm += '</a></div>';
        }
        alert(inHtm);
        in1.innerHtml = inHtm;
    }

My Fiddle

它正在将值分配给inHtm,但我的innerHTML 没有更新。我想在我的 html 中显示图像

最佳答案

这个:

 in1.innerHtml = inHtm;

应该是:

 id.innerHTML = inHtm;

您的对象是 id 而不是 in1,属性是 innerHTML 而不是 innerHtml

此外,我建议使用 console.log() 进行调试,而不是 alert()。警报非常痛苦,尤其是在循环中,并且使用 console.log() 您可以转储整个对象,而警报只会显示“对象”。

Corrected fiddle

关于javascript - innerHTML 没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145447/

相关文章:

javascript - 使用 JavaScript 多次追加一个节点只会追加一次

javascript - 如何在单击按钮时滚动回页面顶部?

javascript - 名为 Columnizer 的 Jquery 插件在 IE 上无法正常运行

javascript - 使中间 iframe 占据整个 div 宽度

javascript - html 页面中多少个 ID 才算是过多?

html - 为什么 Header 比它的包含 block 长,如果它是百分比

HTML5、CSS3 flexbox 无法正常工作

html - 在markdown中使用变量来表示url base

JavaScript 在遍历 JSON 树时更改路径

javascript - Extjs 5 getPlugin 不适用于网格