我有一个我想要显示缩略图的项目列表。但是,如果任何缩略图记录为缺失,我想显示“缺失图像”图像。列表可能很长,所以我想在需要时重复使用相同的“缺失图像”。
但是,下面的测试代码只会导致图像的一个副本 - 最后添加的一个副本。我的问题:我怎样才能多次添加一个Element而不必每次都做一个new()?
ImageElement img = new ImageElement();
img.src= "http://myserver/missing.png";
...
div.nodes.add(img);
div.appendText('11111');
div.nodes.add(img);
div.appendText('22222');
div.nodes.add(img);
div.appendText('33333');
答案 0 :(得分:2)
使用该代码,您不会向div
元素添加新图像。 div.nodes.add(img)
实际上将img
添加为div
元素下的最后一个节点(nodes.add(node)
在引擎盖下使用Node.appendChild。)
要使其有效,您必须为每个ImageElement
创建一个新的div.nodes.add(img)
。您还可以使用Node.clone()创建新的ImageElement
。
在您的情况下,如下所示:
final img = new ImageElement(src:"http://myserver/missing.png");
div.nodes.add(img.clone(false));
div.appendText('11111');
div.nodes.add(img.clone(false));
div.appendText('22222');
div.nodes.add(img.clone(false));
div.appendText('33333');