-1

我正在尝试使用 Google Maps API 在信息框内创建一个 DOM 元素,但是在我希望找到我的元素的地方,浏览器不会呈现元素,而是呈现关于对象的纯文本。我怀疑这与我混合 JS 和 HTML 的方式有关,因为如果我包含 Javascript(没有 HTML),则元素显示没有问题。

我的信息框内容变量如下所示:

var content = '<strong>Title</strong>' + document.createElement('button');

呈现的内容如下所示:

Title [object HTMLButtonElement]
4

1 回答 1

1

我怀疑这与我混合 JS 和 HTML 的方式有关

确切地。

var content = '<strong>Title</strong>' + document.createElement('button');

您的变量在这里首先被分配了一个字符串值 - 然后您尝试使用+运算符向其附加一些内容,该运算符代表此上下文中的字符串连接。由于 HTML 元素在这里是“虚构的”,因此必须将其转换为字符串才能执行操作。当您将 HTML 元素隐式“转换”为字符串时,浏览器会做出类似的事情[object HTMLButtonElement](不同浏览器之间的确切文本可能会略有不同)。

使用 DOM 方法创建所有元素(createElement forstrong和 createTextNode 用于其中的文本内容) - 或使用innerHTML,如果在您的上下文中可能的话。

于 2013-03-15T16:41:18.633 回答