我尝试使用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 "["Mike"]"
var cedArr = JSON.parse(ced.replace(/"/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的工作方式感到有些困惑......
建议表示赞赏!!
答案 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");