0

试图Kotlin在点击的网站上使用该片段HTML Builder,所以我写了以下内容:

val tbl = createHTML().table {
    for ((num, string) in data) {
        tr {
            td { +"$num" }
            td { +string }
        }
    }
}
document.getElementById("container")!!.appendChild(tbl)

但 IDE 是tbl错误的基础,如下所示:

在此处输入图像描述

我在这里犯了什么错误?

4

1 回答 1

0

createHtml()产生一个字符串,不能传递给appendChild(). 你应该改用

val tbl = document.create.table {
    ...
}

它产生一个 HTMLElement(它是一个节点)或者只是跳过变量。

document.getElementById("container")!!.append.table {
    ...
}

createHTML().xxx最好与Ktor.io您创建类似以下内容的服务器一起使用:

val html = createHTML().html {
                        body {
                        form(action = "/login", encType = FormEncType.applicationXWwwFormUrlEncoded, method = FormMethod.post) {
                            p {
                                +"user:"
                                textInput(name = "user") {
                                    value = principal?.name ?: ""
                                }
                            }

                            p {
                                +"password:"
                                passwordInput(name = "pass")
                            }

                            p {
                                submitInput() { value = "Login" }
                            }
                        }
                    }
                }

然后使用以下命令将其发送到浏览器:

call.respondText(html, ContentType.Text.Html)
于 2017-11-04T21:46:51.820 回答