我有以下HTML模板:
<div class="thisDiv" data-dojo-attach-point="thisDivAttachPoint">
<img src="images/someImage.png" class="someImage"
data-dojo-attach-event="onClick:_doSomething"/>
</div>
现在,在附带的js中,我正在评估一些文本,我希望将这些文本放在div
之前的image
中。
var stringToPlace = "This is the text for thisDiv";
this.thisDivAttachPoint.innerHTML = stringToPlace;
但是,这样做会导致:
<div class="thisDiv" data-dojo-attach-point="thisDivAttachPoint">
This is the text for thisDiv
</div>
也就是说,图像正在丢失。
我该怎么做才能使结果是文本“前置”在图像之前。也就是:
<div class="thisDiv" data-dojo-attach-point="thisDivAttachPoint">
This is the text for thisDiv
<img src="images/someImage.png" class="someImage"
data-dojo-attach-event="onClick:_doSomething"/>
</div>
我也试过:
domConstruct.place(stringToPlace, this.thisDivAttachPoint, "first");
但这会产生如下误差:
parameter 1 is not of type 'Node'
我也试探着:
this.thisDivAttachPoint.innerHTML = stringToPlace + this.thisDivAttachPoint.innerHTML;
完成此操作后,从外观上看,它与预期的一样,即文本和图像。但是,图像上的onClick:_doSomething
没有被调用。我错过了什么?检查元素显示onClick:_doSomething
在那里。但单击没有做任何事情。没有错误。
1条答案
按热度按时间cig3rfwq1#
这招奏效了。
这正是我想要的结果。问题是,我们需要在使用
place
之前将String
转换为node
。Dom-Construct Documentation