我使用以下代码
for (var i = 0; i < results.length; i++) {
//console.log(results[i].vicinity);
para = document.createElement('p');
aTag = document.createElement('a');
aTag.setAttribute('href',"/restaurants");
aTag.innerHTML = results[i].name;
mypara = para.appendChild(aTag);
console.log(mypara);
nearby_places.appendChild(mypara);
}
最后一行中的 console.log(mypara)
创建anchor tag
,但不包含在段落标记中,因为它应该根据代码逻辑。我做错了什么
答案 0 :(得分:3)
appendChild
返回子回来尝试安慰父节点para
- console.log(para);
以查看追加的结果,最后一行将如下所示:
nearby_places.appendChild(para);
答案 1 :(得分:1)
appendChild()
方法直接修改para
,而不是保留原始原样并返回修改后的值。因此,您应继续使用para
变量作为段落,而不是mypara
。您修改后的代码为:
for (var i = 0; i < results.length; i++) {
//console.log(results[i].vicinity);
para = document.createElement('p');
aTag = document.createElement('a');
aTag.setAttribute('href',"/restaurants");
aTag.innerHTML = results[i].name;
para.appendChild(aTag);
nearby_places.appendChild(para);
}
更多信息:根据MDN,appendChild()
返回附加节点。这就是您console.log()
来电显示<a>
标记的原因。请参阅:https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild。
答案 2 :(得分:0)
这是一个有效的小提琴: https://jsfiddle.net/fNPvf/22007/
para = document.createElement('p');
aTag = document.createElement('a');
aTag.setAttribute('href',"/restaurants");
aTag.innerHTML = "wendys";
para.appendChild(aTag);
document.body.appendChild(para);