jquery - 使用 ajax 查询时 html 数据表和标题未对齐

标签 jquery html css

在我的 Flask 应用程序中,我已经从使用 Flask 构建的日志表切换到重新加载页面时使用 ajax 调用。

ajax 工作正常,但由于某些原因,标题和数据未对齐并且具有不同的字体(如下所示)

New Table please, waiter!

在 flask 中构建的 html 是这样构建的:

def htmlbuild(data):
    html="<table><th>Time</th><th>Username</th><th>Action</th>"
    for line in data:
        html+= "<tr><td>%s</td><td>%s</td><td>%s</td></tr>" % (line[1], line[2], line[3])
    html+="</table>"
    return html

在 JavaScript/JQuery 中,表格就是这样构建的。

(function ajaxLogCalls(){    $.ajax({ url: "{{ url_for('.ajaxLogGrab') }}", dataType: 'json',
    success: function(data, textStatus, xhr){
        $("#logtable").empty();
        $("#logtable").append("<table><th>Time</th><th>Username</th><th>Action</th>");
        $(data.logs).each(function(i, el) {
            var listem = el.datestamp + "</td><td>" + el.username + "</td><td>" + el.action;
            $("#logtable").append("<tr><td>" + listem + "</td></tr>");
        });
        $("#logtable").append("</table>");
    }
    });
    setTimeout(ajaxLogCalls, 2000)
    })();

在功能上,它们基本相同。

我不得不为表格创建一个新的 div,但我看不到任何会反对它的 css。另外,由于我是按 ID 定位的,所以我尝试使用 form 和 ul 而不是 div 并得到了相同的结果。

适用于表格的 CSS 是:

th {
background-color: #006099;
color: white;
 }
tr:nth-child(even) {background-color: #f2f2f2}
th, td {
border-bottom: 1px solid #ddd;
padding: 5px;
text-align: left;
}
table {
width: 100%;
}

有趣的是,当我尝试将某些东西应用于新的 div 以更改字体大小时,它更改了数据而不是标题。正如我所说,这似乎只发生在由 ajax 构建的数据上。

 #logtable {
font: 70px Georgia, sans-serif;
}

谁能指出我可能发生的事情的正确方向?

最佳答案

发现了差异,但仍不确定原因。 flask 输出没有回车,但 javascript append 有,所以我把它全部变成一个长字符串,现在它可以正确呈现。

(function ajaxLogCalls(){    $.ajax({ url: "{{ url_for('.ajaxLogGrab') }}", dataType: 'json',
    success: function(data, textStatus, xhr){
        $("#logtable").empty();
        var output1 = "<table><tr><th>Time</th><th>Username</th><th>Action</th></tr>"
        $(data.logs).each(function(i, el) {

            var output2 = "<tr><td>" + el.datestamp + "</td><td>" + el.username + "</td><td>" + el.action + "</td></tr>";

            output1 += output2;
        });
        $("#logtable").append(output1 + "</table>");
    }
    });
    setTimeout(ajaxLogCalls, 2000)
    })();

不过还是很奇怪。

关于jquery - 使用 ajax 查询时 html 数据表和标题未对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310787/

相关文章:

javascript - 我在 html 中运行函数时遇到错误

javascript - 动态更新模态 backbone.js 的 css

facebook - CSS3 box-sizing 在 Facebook 应用程序 : padding or sizing issue, 中工作是否会创建不需要的滚动条?

javascript - 如何获取内部动态加载图像的元素的高度

jquery - 单击其他 div 时隐藏/显示 Div

html - 使用 CSS Counter 为标题编号

浏览器问题中的 jquery + css 动画

javascript - 在选项卡更改时将焦点设置到 Bootstrap TabContent 中的输入

javascript - jQuery 悬停动画仅在类似元素中的一个元素上

javascript - 通过搜索查找文本并突出显示出现错误