1

我目前正在制作一个用户脚本,将新创建的元素添加到另一个元素的子元素的末尾。我通过以下方式成功地做到了这一点:

var link=document.createElement('a');
link.setAttribute('href', 'http://orteil.dashnet.org/experiments/cookie/');
link.target = 'blank';
link.appendChild(
document.createTextNode('Cookie Clicker Classic')
);
var add = document.getElementsByTagName('div')[1];
if(add.lastChild) add.insertBefore(link,add.lastChild); 
else add.prependChild(link);

我现在的问题是在子节点的最后一个预先存在的节点和新创建的节点之间需要有一个分隔符。我计划通过在它们之间添加一个“|”来做到这一点。问题是,我不知道如何......我尝试过类似的东西:

var pipe = document.createElement(' ')

pipe.prependChild(document.createTextNode('|'));

但我不知道“元素”类型是什么,因为它只是文本,而不是“a”标签或“p”标签......所以我不能去“var pipe = document.createElement(' a')" 据我了解。

如果没有解决方案,如果有人至少可以给出提示,我将不胜感激。在此先感谢,丹尼尔

4

1 回答 1

0

你在正确的轨道上createTextNode。只是:

if(add.lastChild) add.insertBefore(link,add.lastChild); 
else add.prependChild(link);
add.insertBefore(document.createTextNode('|'), link);

但我认为您的代码可能更简单:

add.insertBefore(document.createTextNode('|'), add.lastChild);
add.insertBefore(link,add.lastChild); 

我不确定你为什么prependChild在为空时调用,add并注意作为第二个参数调用是完全可以的(它只是附加)。insertBeforenull

于 2013-09-25T08:07:46.177 回答