如何使用jQuery更改表单元格的内容,然后在用完时动态添加更多内容?

如何使用jQuery更改表单元格的内容,然后在用完时动态添加更多内容?,jquery,html-table,css-selectors,Jquery,Html Table,Css Selectors,我有一张三列的桌子。我在PHP中创建了一个字符串,用逗号分隔“id”和相应的数据。这些对用感叹号隔开,这样我就可以这样使用它们了。我想用数据填充每个表单元格,并为其分配一个id,以便在以后单击该对象时可以将该id用于mysql查询。当我填充了行并且需要更多列时,我想添加另一行。当包含id数据对的数组为空时,我想中断循环。我不知道我在做什么,所以请详细说明。经过几天的研究,这是我所能收集到的,它甚至还没有接近产生结果 $("#class").keyup(function () {

我有一张三列的桌子。我在PHP中创建了一个字符串,用逗号分隔“id”和相应的数据。这些对用感叹号隔开,这样我就可以这样使用它们了。我想用数据填充每个表单元格,并为其分配一个id,以便在以后单击该对象时可以将该id用于mysql查询。当我填充了行并且需要更多列时,我想添加另一行。当包含id数据对的数组为空时,我想中断循环。我不知道我在做什么,所以请详细说明。经过几天的研究,这是我所能收集到的,它甚至还没有接近产生结果

$("#class").keyup(function () 
    {
        $.post("classSearch.php",
    {
            class:$(this).serialize(),
        },
        function(data)
        {   
            if (data == "notFound") 
            {
                $("#searchResults td").siblings(":first").text("No Results");
            }
            else
            {
                var counter = 0;
                var resultsTemp= data.split("!");
                var iterations = resultsTemp.size();
                $("#searchResults td:first").each(function() 
                {       
                    if (counter == iterations) 
                    {return false;}
                    if((counter % 3) == 0)
                    {$("#searchResults td").siblings(":last").append("<tr><td></td><td></td><td></td></tr>");}
                    var results = resultsTemp.split(",");
                    $(this).text(results[(1)]);
                    $(this).attr("id",results[0]);
                    counter ++; 
                });
            }
        });
    });
$(“#类”).keyup(函数()
{
$.post(“classSearch.php”,
{
类:$(this).serialize(),
},
功能(数据)
{   
如果(数据==“未找到”)
{
$(“#searchResults td”).兄弟姐妹(“:first”).文本(“无结果”);
}
其他的
{
var计数器=0;
var resultsTemp=data.split(“!”);
var迭代次数=resultsTemp.size();
$(“#searchResults td:first”)。每个(函数()
{       
如果(计数器==迭代次数)
{返回false;}
如果((计数器%3)=0)
{$(“#searchResults td”).同级(“:last”).append(“”)}
var results=resultsTemp.split(“,”);
$(本).text(结果[(1)];
$(this.attr(“id”,results[0]);
计数器++;
});
}
});
});
HTML


清空表格,让它保持原样

现在,如果数据没有返回结果,您可以简单地执行以下操作:

$("#searchResults").append("<tr><td>Nothing returned</td></tr>");

所以你想把下载的数据分成三组,将它们添加到一行,然后移动到下一个三组的下一行,对吗?不完全是这样。我想一个接一个地更改“td”的id并向其添加文本。一旦我到了行的最后一个单元格,我只想添加另一行并重复,直到数据用完为止。来自php文件的数据包含所有对,而不仅仅是三对。请检查resultTemp的数据类型…恐怕它已经是数组,因此无法拆分。不过,我可以在结果[计数器]中拆分字符串。我会换的。非常感谢。这要简单得多。不客气——对答案进行投票也很好:)我昨天没有足够的分数来投票。有些东西神奇地出现了,你就拥有了它。:)啊-非常感谢:)
$("#searchResults").append("<tr><td>Nothing returned</td></tr>");
var resultsTemp = data.split('!');
var addToTable = '';
var totalElements = resultsTemp.length;
for (var i=0; i<totalElements/3; i++) {
    if (i%3 == 0)
        // Beginning a new row
        addToTable += '<tr>';

    // Parse and get the id and value from each element
    var elemId = resultsTemp[i].split(',')[0];
    var elemValue = resultsTemp[i].split(',')[1];
    addToTable += '<td id="'+elemId+'">'+elemValue+'</td>';

    if (i%3 == 2)
        // End of row
        addToTable += '</tr>\n';
}

// If the total set was not an exact multiple of 3
// you will need to close the row
if (totalElements %3 !=0)
    addToTable += '</tr>\n';

$("#searchResults").append(addToTable);