javascript - 即使标记相同,使用 JS 添加的元素与使用 HTML 编写的元素的显示方式也不同
问题描述
我有一个页面正在从数据库加载一些东西并使用 PHP 打印它,我决定更改它,以便我可以在页面加载后使用 javascript 添加这些元素。
两种方法生成的标记是相同的,但是 JS 元素没有边距,而 PHP 元素有:
在 PHP 中生成:
使用 Javascript 添加:
无论哪种情况,开发工具中的标记都是相同的:
<div id="departureTimes">
<div class="depTime" data-id="2">11:30
<a href="javascript:void(0)" class="delObjBtn" data-type="DepartureTime" data-id="2"><img src="img/icons/icon-mini-cross-grey.png"></a>
</div>
<div class="depTime" data-id="3">12:25
<a href="javascript:void(0)" class="delObjBtn" data-type="DepartureTime" data-id="3"><img src="img/icons/icon-mini-cross-grey.png"></a>
</div>
</div>
为什么当我通过 JS 添加元素而不是 PHP 时,边距会折叠?这是 JS 片段:
var plate = document.getElementById( 'departureTimes' );
plate.innerHTML = '';
var deps = this.ticket.children.DepartureTime;
for( var i = 0; i < deps.length; i ++ ){
var c = deps[i];
var div = document.createElement( 'div' );
div.classList.add( 'depTime' );
div.dataset.id = c.DBid;
var a = document.createElement( 'a' );
a.href = 'javascript:void(0)';
a.classList.add( 'delObjBtn' );
a.dataset.type = "DepartureTime";
a.dataset.id = c.DBid;
var img = document.createElement( 'img' );
img.src= "img/icons/icon-mini-cross-grey.png";
a.appendChild( img );
div.appendChild( document.createTextNode( c.time ) );
div.appendChild( a );
plate.appendChild( div );
}
解决方案
推荐阅读
- azure - 在 Azure Devops 中形成一个查询,以提取从一种状态移动到另一种状态的所有工作项
- c# - 更新功能在 AR 应用程序中不起作用
- php - 如何通过函数 longArrayToString 在 php 和 nodejs 之间获取相同的字符串
- ios - IQKeyboard 未在 stackview 中显示下一个/上一个选项
- razor-pages - Razor Pages - 动态添加元刷新标签
- wpf - MaterialDesginInXamlToolkit - 垂直对齐 ListViewItem 内容
- javascript - 为什么递归调用不会触发窗口加载事件?
- vector - 如何有一个返回结果的迭代器
>> 而是返回一个展平的结果 >? - android - 新活动如何从回收站视图中获取数据图像
- java - Android MQTT 客户端订阅在 API 级别 26 下不起作用