繁体   English   中英

使用Javascript在一个网页上动态地向多个表添加行

[英]Adding rows to multiple tables dynamically on one web page using Javascript

这个可能是我对html5缺乏经验,但我有一些代码可以很好地使用Javascript和TBODY标记节点动态地向表添加行,但是当我在页面上有多个表(我这样做)时我需要在输入数据时动态填充......它不起作用......

我的问题是我无法弄清楚如何参考我想要添加信息的部分。

我尝试创建一个带有特定标签的节点,但它不是一个可识别的标签,所以它添加了数据但不在表格内......奇怪的是。

这是我正在使用的Javascript代码

document.getElementById("sendNoteToDispatch").onclick=function()
    {
        event.preventDefault();
        console.log("Made it to note entry.");
        var noteTxt = $('#noteEntry').val();
        var noteEntBy = 'BGM';
        var nowNote = Date();
        var noteEntDate = dateFormat(nowNote, "mm/dd/yyyy HH:MM:ss");
        if (!document.getElementsByTagName) return;
        tabBody=document.getElementsByTagName("TBODY").item(0);
        row=document.createElement("TR");
        cell1=document.createElement("TD");
        cell2=document.createElement("TD");
        cell3=document.createElement("TD");
        textnode1=document.createTextNode(noteEntDate);
        textnode2=document.createTextNode(noteEntBy);
        textnode3=document.createTextNode(noteTxt);
        cell1.appendChild(textnode1);
        cell2.appendChild(textnode2);
        cell3.appendChild(textnode3);
        row.appendChild(cell1);
        row.appendChild(cell2);
        row.appendChild(cell3);
        tabBody.appendChild(row);
        document.getElementById("noteEntry").value = '';
        document.getElementById("noteEntry").focus();
       }

});

这是它使用的html代码。

<div id="Notes" class='acceptEnterNotes'>
            <form>
                <input type="text" name="noteEntry" id="noteEntry" class="noteEntryField" placeholder="Note Entry" size="115" />
                <button type="submit" id="sendNoteToDispatch" class="noteEntryButton buttonAddNote" value="Submit">
                    Submit Note
                </button>
            </form>
            <br />
            <br />
            <div id="filterNotesGriddiv">
                <input type="text" name="filterNotesGrid" id="filterNotesGrid" class="tableFilterInput" size="75" placeholder="Search the Table Below..." />
            </div>
            <div id="notesEntered">
                <table id="notesEnteredGrid" class="lowerSectionTable">
                    <tbody>
                        <tr class="enteredNotesHeader">
                            <td class="tableHeaderCells cellDateEntered">Date Entered</td><td class="tableHeaderCells cellEnteredBy">Entered by</td><td class="tableHeaderCells cellNoteEntered">Note</td>
                        </tr>
                    </tbody>
                </table>

            </div>

        </div>

我尝试将tbody标签更改为tbodyNotes之类的东西,但是这没有用,然后我尝试在tbody节点上添加一个ID,但这也不起作用......所以任何可以提供帮助的东西,以便我可以添加另一个有不同表格的部分......真棒。

所以,目前您正在获取页面中的第一个TBODY标记:

tabBody=document.getElementsByTagName("TBODY").item(0);

然后构建一行单元格,然后将该行插入到tbody中:

tabBody.appendChild(row);

如果您将另一个表放入页面中,其中包含TBODY,您可以使用以下内容获取第二个表的TBODY标记:

tabBody2=document.getElementsByTagName("TBODY").item(1);

一般来说,你似乎使用了大量的猜测和(可能)剪切和粘贴的代码。 当你说你尝试过ID并且它们不起作用时,这有点荒谬。 元素上的ID工作正常,甚至是TBODY标签。 如果有疑问,请先尝试从firebug或chromebug控制台调用它们,然后获取代码行以使TBODY标记首先在那里工作,然后将其放入代码中。 试试这个:将两个带tbody的表放入你的html页面。 给tbody标签id,比如“tbody1”和“tbody2”,然后打开你的firebug控制台并输入:document.getElementById(“tbody1”)将鼠标悬停在结果上,看到页面中的元素突出显示。 然后尝试与tbody2相同。

最后,这些都不是HTML5,它只是简单的老无聊的HTML和Javascript。 您可以在mozilla dev上查看DOM API级别2,HTML4规范和Javascript参考,以了解有关这些命令的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM