需要单独的javascript文件函数才能工作,而不是
我有一个独特的问题,我希望有人能帮助我。我有一个页面,它使用AJAX从控制器中提取数据,并将其呈现给此函数以构造一个表:需要单独的javascript文件函数才能工作,而不是,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个独特的问题,我希望有人能帮助我。我有一个页面,它使用AJAX从控制器中提取数据,并将其呈现给此函数以构造一个表: // make rows in table from json data function makeTableRows() { if (jsonTableData != null) { tbl = null; tbl = createTable('tableResults'); // co
// make rows in table from json data
function makeTableRows() {
if (jsonTableData != null) {
tbl = null;
tbl = createTable('tableResults');
// constructHeader(tbl, 'left', jsonTableData[0]);
newHeader(tbl, 'left', jsonTableData[0]);
var totalItems = jsonTableData.length;
var topItem;
topItem = 0;
if ((lastItem + perpage) > totalItems) {
topItem = totalItems;
$(".btnNext").prop('disabled', true);
}
else {
topItem = lastItem + perpage;
}
for (var i = lastItem; i <= topItem - 1; i++) {
makeTableRow(tbl, jsonTableData[i], 'left', true, 'showTourDetails(' + jsonTableData[i]["TransactionID"] + ',' + i + ')', 0);
}
$("#divSearchResults").html(tbl);
makePagesLabel();
makeTableFooter(tbl);
}
}
单独文件中的函数如下所示:
function constructHeader(table, alignment, firstRow) {
if (firstRow != null) {
var thead = document.createElement('thead');
table.appendChild(thead);
var tr = document.createElement('tr');
for (var key in firstRow) {
var header = key.match(/[A-Z][a-z]*/g);
var newHeader = '';
for (var i = 0; i <= header.length - 1; i++) {
newHeader += header[i] + ' ';
}
var th = document.createElement('th');
var text = document.createTextNode(newHeader);
th.appendChild(text);
th.style.textAlign = alignment;
th.style.cursor = 'pointer';
th.setAttribute('title', "Sort by " + newHeader);
th.onclick = function () {
var rows = $(table).find('tbody').find('tr').toArray().sort(comparer($(this).index()));
this.asc = !this.asc;
if (!this.asc) {
rows = rows.reverse();
}
for (var j = 0; j < rows.length; j++) {
$(table).append(rows[j]);
}
$(table).find('tbody').find('tr:even').css("background-color", "#dae5f4");
$(table).find('tbody').find('tr:odd').css("background-color", "#b8d1f3");
};
tr.appendChild(th);
}
thead.appendChild(tr);
}
}
基本上,该函数为每个列的标题创建一个排序过程。在对列进行排序之后,我想重新应用斑马条纹,该条纹应用于表的类。若我不试着重新申请,我最终会把条纹弄得一团糟。现在的问题是,如果我将函数复制到.cshtml页面,并将其命名为“newheader”,则重新条带化工作正常。它在单独的JS文件中不起作用,我不知道为什么。有人有任何线索吗?为什么要对斑马条纹的每一行单独应用css?只需在CSS头中执行一次:tr:nth child偶数{background color:red;}tr:nth childodd{background color:white;}表类在首次加载时应用条带化。当它被分类时,我正在尝试重新划分条带。这两种方式都可以,但在单独的js文件中不起作用。这就是问题所在…Jonathan的解决方案意味着您不必在任何javascript位置对其进行条带化,即使在重新使用表之后也是如此。我在页面附带的.css文件中有这样的内容:。table_body thead tr:nth childodd{background:b8d1f3;}。因此,当加载表时,它会被很好地剥离。当我分类的时候,条纹会发生变化,而且都是乱七八糟的。我正在像上面显示的那样重写表行,颜色跟随行。那么我该怎么做呢?@JonathanM-我理解你的意思,当我第一次加载表时CSS工作得很好。表格排序后,原始颜色将跟随该行,并且不会重新剪裁。为什么不呢?