使用 JavaScript 将 DOM 元素添加到 Body 的最佳方法
Best way to add DOM Element to Body with JavaScript
我需要在每一页上都放下这段代码:
document.body.innerHTML += '<div style="position:fixed; text-align:center; left:30px; widht: 200px;bottom: -12px;"> <div class="card" style="position: relative;background: #EC2D2D;border-radius: 5px;padding: 20px 0 0px 0;box-sizing: border-box;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.24);-webkit-transition: .3s ease;transition: .3s ease;"> <h1 class="title" style="position: relative;z-index: 1;border-left: 5px solid #FFFFFF;margin: 0 0 25px;padding: 10px 0 10px 10px;color: #FFFFFF;font-size: 32px;font-weight: 600;/* text-transform: uppercase; */">50% less</h1> <div class="button-container" style="margin: 0 20px;text-align: center;"> <button style="outline: 0;cursor: pointer;position: relative;display: inline-block;background: 0;color: #EC2D2D;background: #fff;width: 170px;border: 2px solid #C70A0A; padding: 10px 0;font-size: 14px;font-weight: 600;line-height: 1;text-transform: uppercase;overflow: hidden;-webkit-transition: .3s ease;transition: .3s ease;"><span>Bid and Book Now</span></button> </div> <div class="footer" style="margin: 20px 0 0;color: #FFFFFF !important;font-size: 14px;font-weight: 100;text-align: center;"> <p style="color: inherit;text-decoration: none;-webkit-transition: .3s ease;transition: .3s ease;">BEST RATES - only on website</p> <p style="font-size: 10px;">End in: 1d 2h 33m</p></div> </div> <div class="card alt" style="position: absolute;top: 40px;border: 3px solid #ED2553;right: -40px;z-index: 10;width: 80px;height: 80px;background: #FFFFFF;background-image: url("http://i.imgur.com/32T7CPH.jpg");border-radius: 100%;box-shadow: none;padding: 0;-webkit-transition: .3s ease;transition: .3s ease;"> </div> </div> ';
此代码并非在每个页面上都运行良好。 另外,我认为它非常慢,并且在某些页面中存在问题。 我怎样才能用appendChild
或类似的东西来写这个?
我不能使用JQuery的append
,因为我必须使用纯JavaScript代码。
这段代码在appendChild
会是什么样子?
该方法appendChild
获取一个节点并将该节点添加到调用它的元素中。
var node = document.createElement("DIV");
var textNode = document.createTextNode("My Div content");
node.appendChild(textNode);
document.body.appendChild(node);
不能将appendChild
与包含整个 html 的字符串一起使用。
您可以做的是创建一个节点。用巨大的绳子设置它的innerHTML
。然后将节点追加到正文。
代码应类似于以下内容:
var content = ....
var newNode = document.createElement("DIV");
newNode.innerHTML = content;
document.body.appendChild(newNode);
在vanilla JS中,您可以使用.appendChild
它将节点作为参数传递给元素调用方。
在您的情况下(将字符串作为要插入的 dom 元素),您可以执行此技巧:
var el = document.createElement("div");
el.innerHTML = "<your dom code>";
while (el.firstChild) document.body.appendChild(el.firstChild);
这有点粗鲁,但通过这种方式,您将创建一个元素,用字符串 dom 填充它,然后将每个子项移动到 document.body
这里以使用您的代码的 JsFiddle 为例
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 不同页面背景的body标记上的角度ng样式
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 从数组中删除元素的最佳方法是:javascript/jquery
- contentWindow.document.body is null
- 链接两个网页或网络应用程序的最佳方式
- 使用 JavaScript 将 DOM 元素添加到 Body 的最佳方法
- 在body html中搜索某些文本的最佳方法是什么?