Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以创建某种HTML对象(甚至使用框架)_Html - Fatal编程技术网

是否可以创建某种HTML对象(甚至使用框架)

是否可以创建某种HTML对象(甚至使用框架),html,Html,我想知道是否有可能创建一种HTML对象而不是复制粘贴的东西,我想通过javascript来实现,但想知道是否有更简单的方法来实现(用JS编写HTML有点乏味) 基本上,让我们假设有一个这样的div: <div class ="col"> <div class="Title"> Title </div> <div class="Text"

我想知道是否有可能创建一种HTML对象而不是复制粘贴的东西,我想通过javascript来实现,但想知道是否有更简单的方法来实现(用JS编写HTML有点乏味)

基本上,让我们假设有一个这样的div:

        <div class ="col">
            <div class="Title">
                Title
            </div>
            <div class="Text">
                Text
            </div>
        </div>

标题
正文

最好的方法是使用某种类型的函数来创建objectName.create(title,text)还是使用类似javascript的函数(title,text)来创建元素?

您可以获取外部元素并将其克隆,更改其内容并将其追加回所需的位置。请注意,如果您的元素应该有一个ID,那么这可能会重复ID

函数createHtml(标题、文本){
const el=document.querySelector('.col').cloneNode(true);
el.querySelector('.Title')。innerText=标题;
el.querySelector('.Text')。innerText=Text;
文件.正文.附件(el);
}
创建HTML(“Foo”、“Bar”)

标题
正文

在js中使用模板文字成为一种东西之后,用js编写html并不是件坏事,您可以这样做

函数addCol(标题、文本){
document.querySelector(“.list”).innerHTML+=`
${title}
${text}
`;
}
addCol(“你好”,“世界”);
addCol(“foo”、“bar”)

这可能是一种安全风险,具体取决于OP希望如何使用此代码。不要使用可变内容设置innerHTML。看看我的答案,看看它是如何正确完成的。你永远不应该信任用户数据,但是如果你担心XSS,你可以通过在将内容添加到模板之前清理内容来很容易地防止它,例如像这样使用
${domprify.sanitize(myVar)}
为什么这个选项比另一个选项“更安全”(关于你的评论)?谢谢,请阅读我发布的链接的答案。以上是开放的xss攻击@LoicBAZIN这里。简而言之,我的版本逃避了输入,另一个答案是有人可以在你的站点中注入代码,用于攻击