gpt4 book ai didi

jquery - 对将 TD 附加到 TR 的 jQuery 片段失败感到困惑

转载 作者:行者123 更新时间:2023-12-01 04:12:43 25 4
gpt4 key购买 nike

这个问题背后的动机是理解为什么下面的 jQuery 代码片段会失败。

注意:通过愚蠢、盲目的试错,我找到了确实有效(或似乎有效)的替代代码。因此,这个问题的目的(本身)并不是“修复”下面所示的问题。相反,我的目标是尽可能多地了解它失败的原因。

    jQuery(document).ready(function ($) {
var tds = [];
for (var i = 0; i < 3; ++i) {
var td = $('<td>');
tds.push(td);
}
var $tds = $(tds);
var $row1 = $('#row1');
$tds.appendTo($row1);
});

基本上,该代码段的目的是创建三个(jQuery 包装的)td 元素,然后将它们附加到预先存在的 tr 中。 (在本文的最后,我复制了完整的 HTML+CSS+JS 代码。)

如前所述,我的目标是了解此代码片段失败的原因。因此,这个问题主要是针对那些在不运行代码的情况下就已经看到该代码片段将失败的人。对于那些有能力这样做的人:你的理由是什么?到底是什么告诉您该代码片段无法工作?

<小时/>

完整代码如下:

<!DOCTYPE html>
<html>
<head>
<title>title</title>
<meta charset="utf-8">
<style>
td{width:100px;height:20px;background:#C40000}
</style>
</head>
<body>
<table>
<tr id="row1"></tr>
</table>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery(document).ready(function ($) {
var tds = [];
for (var i = 0; i < 3; ++i) {
var td = $('<td>');
tds.push(td);
}
var $tds = $(tds);
var $row1 = $('#row1');
$tds.appendTo($row1);
});
</script>
</body>
</html>

最佳答案

您可以从 DOMElement 数组创建新的 jQuery 对象,不能jQuery 数组创建对象,所以这一行是错误的:

var $tds = $(tds);

修复此问题的最简单方法是更改​​ $('<td>')$('<td>')[0] ,得到实际的<td> DOM 元素。您还可以使用 document.createElement('td')而是在那里。

关于jquery - 对将 TD 附加到 TR 的 jQuery 片段失败感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501680/

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