Javascript 在JS函数中调用一堆HTML是一种糟糕的做法吗?

Javascript 在JS函数中调用一堆HTML是一种糟糕的做法吗?,javascript,wordpress,Javascript,Wordpress,以下是我想做的: 我正在通过“oninput=myFunction()” 当我开始打字时,我想做几件事: 我的功能是删除一些元素和添加一个文本节点,但是,我还需要它添加35-40行HTML 这样做不好吗? 我还不确定应该如何设置它来通过函数调用这个HTML 做这件事最好/最干净的方法是什么? 我是否应该使用隐藏显示:none class来包装HTML,并让函数添加一个可见类 我觉得那不是最好的方法,所以我才来问你 任何建议都将不胜感激。我正在打电话,如果我不太清楚,很抱歉。我认为更好的方法是在元

以下是我想做的:

我正在通过
“oninput=myFunction()”

当我开始打字时,我想做几件事:

我的功能是
删除一些元素
添加一个文本节点
,但是,我还需要它添加
35-40行HTML

这样做不好吗?

我还不确定应该如何设置它来通过函数调用这个HTML

做这件事最好/最干净的方法是什么?

我是否应该使用
隐藏显示:none class
来包装HTML,并让函数添加一个可见类

我觉得那不是最好的方法,所以我才来问你


任何建议都将不胜感激。我正在打电话,如果我不太清楚,很抱歉。

我认为更好的方法是在元素准备好后(页面加载后)使用脚本添加事件处理程序。此函数应负责动态创建和删除脚本中的任何元素

这样做将确保您的HTML是干净的,JavaScript将完成它所负责的工作。通过使用
document.createElement
document.createTextNode
等方法,可以很好地使用JavaScript创建HTML。创建元素后,可以将它们附加到正确的位置


为了在所有浏览器上获得最佳渲染效果,通常最好在所有内容都准备好显示之前让元素显示为
display:none

@kaido这就是为什么通常使用带有
display:none
的类。通过使用CSS或Javascript删除类,您可以轻松地设置动画。@kaido我真的不确定这意味着什么。。。这个属性可以用JavaScript删除,然后你可以用HTML元素做任何你需要的事情?我在我所有的动画中都使用了
display:none
,它的工作就像使用JavaScript的魅力一样。removeChild也可以工作,但一些较旧的浏览器已知存在非附加元素的问题。@Kaido我的意思是从不可见转换为可见。。。一旦元素可见,你就可以对它做任何你想做的事情。@kaido根据HTML的繁重程度,一些渲染引擎在旧浏览器和/或移动浏览器上可能会很笨拙。我个人尝试只在动态对象准备好时才显示它们,但这可能是一种偏执。我也不相信这个问题,但也许我的回答会有帮助!谢谢,这正是我现在所做的。它工作得很好,只是想确保它不是太草率。我倾向于在DOM中已经存在HTML片段的解决方案。但你在拿哪种选择作比较呢?将JavaScript字符串文本分配给
innerHTML
属性?如果您发布代码的两个(或更多)备选方案,这将非常有用。