javascript查找字符串作为id的元素

时间:2015-11-05 18:35:20

标签: javascript

我尝试使用id等于字符串的页面中的元素编写函数,并将子元素附加到该元素。但是我对JS并不熟悉,也不知道我的功能有什么问题。这是功能。 "设置"只是一个数组作为字符串集(它包含多个名称)。

    function printNetwork(set,id){
        console.log("id is "+id);
        var node=document.getElementById(id);
        console.log("found"+node);
        for(var s in set){
            var className="leaf";
            var content = document.createTextNode("<p class="+className+">"+s+"</p>");
            console.log(content);
            node.appendChild(content);
        }
    }

然后我调用了函数:

    var ced ="${commented}";
    console.log(ced);//ced is like "[&quot;Mike&quot;]"
    var cedArr = JSON.parse(ced.replace(/&quot;/g, '"'));//parse it back to set
    console.log(cedArr);
    printNetwork(cedArr,"ced");

从控制台读取日志,它说&#34; node&#34;找不到,&#34;内容&#34;是&#34; <p class=leaf>0</p>&#34;并且appendChild失败了。 我的问题是,我怎样才能将id传递给它通过参数搜索元素的函数?我已经习惯了Java的工作方式,现在我对JS的工作方式感到有些困惑......

建议表示赞赏!!

1 个答案:

答案 0 :(得分:1)

似乎工作,我使用了与你不同的阵列来使示例变得简单,但我的猜测是你的DOM中没有任何ID为? ActiveSheet.UsedRange.Address() 的元素:< / p>

ced

和html:

function printNetwork(set,id){
    console.log("id is "+id);
    var node=document.getElementById(id);
    console.log("found"+node);
    for(var s in set){
        var className="leaf";
        var content = document.createTextNode("<p class="+className+">"+s+"</p>");
        console.log(content);
        node.appendChild(content);
    }
}

var ced = {"a": "a", "b": "b"};
printNetwork(ced,"ced");

http://jsfiddle.net/eakvdr7L/