将文本追加到div而不覆盖dojo中现有的查尔兹

cwxwcias  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(139)

我有以下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在那里。但单击没有做任何事情。没有错误。

cig3rfwq

cig3rfwq1#

这招奏效了。

domConstruct.place(domConstruct.toDom(stringToPlace), this.thisDivAttachPoint, "first");

这正是我想要的结果。问题是,我们需要在使用place之前将String转换为node
Dom-Construct Documentation

相关问题