锚标记不附加在段落标记javascript中

时间:2015-11-30 18:08:59

标签: javascript jquery

我使用以下代码

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,但不包含在段落标记中,因为它应该根据代码逻辑。我做错了什么

3 个答案:

答案 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);