gpt4 book ai didi

javascript - 定位div并获取外部js文件工作onload

转载 作者:太空宇宙 更新时间:2023-11-04 03:15:07 25 4
gpt4 key购买 nike

我有一个 JavaScript 和 CSS 可以在 fiddle 中运行,但当我使用外部 fiddle 时就不行了。 fiddle

  1. 当我将它插入到如下 html 中时,它不起作用。我想我遗漏了一些代码?
  2. 当我不从 jsfiddle 查看时,计数 div 不在正确的位置。如何相对于搜索 input 定位它?
  3. 生成表格需要一分钟,是不是我代码写的不好?*我确实有 800 行 * 8 列

提前谢谢你。

HTML

<head>
<link rel="stylesheet" type="text/css" href="search-table.css">
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="search-table.js"></script>
</head>
<body>
</body>
<table id="table-body">
<thead>
<tr>
<th>No.</th>
<th>Name</th>
<th>Address</th>
<th>Tel</th>
<th>Fax</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Apple</td>
<td>A1</td>
<td>1-11</td>
<td>1-22</td>
</tr>
<tr>
<td>2</td>
<td>Banana</td>
<td>A2</td>
<td>2-11</td>
<td>2-22</td>
</tr>
<tr>
<td>3Asdqwe</td>
<td>Cherry</td>
<td>A3</td>
<td>3-11</td>
<td>3-22</td>
</tr>
<tr>
<td>4A</td>
<td>Duriaen</td>
<td>A4</td>
<td>4-11</td>
<td>4-22</td>
</tr>
<tr>
<td>1</td>
<td>Apple</td>
<td>A1</td>
<td>5-11</td>
<td>5-22</td>
</tr>
<tr>
<td>2</td>
<td>Banana</td>
<td>A2</td>
<td>6-11</td>
<td>6-22</td>
</tr>
<tr>
<td>3Asdqwe</td>
<td>Cherry</td>
<td>A3</td>
<td>7-11</td>
<td>7-22</td>
</tr>
<tr>
<td>4A</td>
<td>Duriaen</td>
<td>A4</td>
<td>8-11</td>
<td>8-22</td>
</tr>
</tbody>
</table>
</html>

JavaScript

//Perparing table
/*
*comment
*/
$("<div>", {
class: "tablewrapper"
}).insertBefore("table#table-body");
$("<table>", {
class: "header"
}).appendTo($("<div>", {
class: "headerwrapper"
}).appendTo("div.tablewrapper"));
$("table#table-body").appendTo($("<div>", {
class: "bodywrapper"
}).appendTo("div.tablewrapper"));
$("table#table-body>thead").clone().val("").appendTo("table.header");
$("table.header>tr").removeClass("header_hidden");
$("table#table-body").find("thead tr").addClass("header_hidden");
$("table#table-body").find("tbody td:nth-child(2)").addClass("lefty");
$("<input>", {
type: "text"
}).attr("id", "search-criteria").appendTo($("<div>", {
class: "s_box"
}).insertAfter("div.headerwrapper"));
$("<div>").attr("id", "count").insertAfter("div.s_box");


resizeTable();
var bodyTd = $("table#table-body tr td");

$(window).resize(resizeTable);

//search function
$("#search-criteria").on("keyup", function () {
var keyword = $(this).val().replace(/[A-Za-z0-9]/g, function (td_word) {
return String.fromCharCode(td_word.charCodeAt(0) - 0xFEE0);
}).toLowerCase();
var row = "table#table-body tbody>tr";

if (keyword !== "") {
$(row).each(function () {
var td_word = $(this).text().toLowerCase();
//shorthand if function
$(this).closest(row)[td_word.indexOf(keyword) !== -1 ? 'show' : 'hide']();
});
var srowCount = $(row).filter(":visible").length;
document.getElementById('count').innerHTML = srowCount;
if (srowCount === 0) {
if (!$(row).last().hasClass('s_empty')) {
$("table#table-body tbody").last().append('<tr class="s_empty"><td colspan="5" style="text-align:center">Search not found</td></tr>');
}
$("tr.s_empty").show();
} else {
$("tr.s_empty").remove();
}
} else {
$("tr.s_empty").remove();
$(row).show();
document.getElementById('count').innerHTML = $(row).length;
}

});

var row = "table#table-body tbody>tr";
var srowCount = $(row).filter(":visible").length;
document.getElementById('count').innerHTML = srowCount;

function resizeTable() {
//width adjustments
$("table.header").width($("#table-body").width());
$("div.s_box").width(($("div.headerwrapper").width() - 10)).height(($("table.header").height() - 9));
$("input#search-criteria").width(($("div.headerwrapper").width() - 30)).height(($("div.s_box").height() - 0.05));
var counter_h = ($("table.header").height() / 2 + $("table.header").height() - 1);
$("div#count").css({
"top": counter_h
});

var bodyTr = $("table#table-body tbody>tr:visible:eq(0) td");
console.log(bodyTr);
$("table.header tr:first th").each(function (index, value) {
$(this).width(bodyTr.eq(index).width());
});

//apply widths to every TD
$("table#table-body tr:gt(0)").each(function () {
$(this).children().each(function (index) {
$(this).width(bodyTr.eq(index).width());
});
});
}

最佳答案

你必须让 s_box 成为相对的,这样计数就根据它变成绝对的

.s_box {
position: relative;
}

关于javascript - 定位div并获取外部js文件工作onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com