【问题标题】:Appending to tbody appends to the top?附加到 tbody 附加到顶部?
【发布时间】:2017-11-07 21:14:53
【问题描述】:

我得到了附加到 tbody 的奇怪结果。有时它会附加到顶部,有时会附加到顶部和底部。

此 jsfiddle 显示附加到 tbody 位于底部:https://jsfiddle.net/dxnw34bb/

但在我的网站上,它附加到表格的顶部:

http://tx.rxtron.com/restore.php (将最后一个输入框(存储槽)的值改为5)

我网站上的代码是:

$('tbody#form').append("<tr class='storage-contents' id='slot-"+i+"'><td>Slot "+(i+1)+":</td> <td>"+ "<button id='potion-"+i+"'>Potion</button>"+ "<button id='ring-"+i+"'>Ring</button>"+ "<button id='wand-"+i+"'>Wand</button> <button id='empty-"+i+"'>Empty</button></td></tr>");

为什么将按钮行附加到表格的顶部而不是底部?

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须在问题本身中包含所需的行为、特定问题或错误以及重现它所需的最短代码 .
  • 问题中似乎缺少 HTML。当 HTML 丢失时,很难解释为什么 JS 没有按照您期望的方式操作 HTML。
  • 你应该先做basic automated QA(因为修复那里的错误解决你遇到的问题)。
  • @Quentin 我不确定我应该在这里发布所有的 html,这就是我留下链接的原因
  • — 当人们稍后出现时,在您解决了问题并且再也看不到损坏的代码之后,这个问题将变得毫无用处。不要发布所有的 HTML。发布足以重现问题:sscce.org

标签: jquery html-table


【解决方案1】:

编辑
正如 CBroe 在评论中所述,caption 标记不能作为子项放置在表中。(CBroe 链接:Code Check
此外,您还没有关闭 form 标签

问题是,在您的网站上,您有 2 个 tbody,而 #form 在包含所有输入的那个之前。
来自萤火虫:

<table>
    <tbody id="form"> </tbody>
    <caption>Restore Stats</caption>
    <tbody>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr></tr>
        <tr>
            <td>Storage Slots:</td>
            <td>
            <td class="tip">The size of your storage box</td>
        </tr>
    </tbody>
</table>

【讨论】:

  • 在标题下,我没有像你的例子中那样的其他人
  • 不在你的 HTML 代码中——但这就是浏览器制作你的 HTML,当它构建 DOM 时,因为你的 HTML 无效caption 只能作为table 的第一个子元素放置,但您将其放入tbody 中(这会使浏览器隐式关闭后者,并在标题后打开另一个子元素)。 Fix your broken HTML code.
猜你喜欢
  • 1970-01-01
  • 2021-08-20
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 2018-06-25
  • 2021-08-07
  • 2020-05-24
相关资源
最近更新 更多