Javascript JQuery忽略使用ajax创建的html

Javascript JQuery忽略使用ajax创建的html,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个html表,它的内容是用ajax创建的 我有一个按钮,可以在表格的开头添加一行 但是JQuery不知道ajax内容,只在它之后添加行 $("#add-row-first").on("click", addrowfirst); function addrowfirst(){ $("#table").prepend("<tr><td>1</td><td>cell</td><td>cell</td>&l

我有一个html表,它的内容是用ajax创建的 我有一个按钮,可以在表格的开头添加一行 但是JQuery不知道ajax内容,只在它之后添加行

$("#add-row-first").on("click", addrowfirst);
function addrowfirst(){
    $("#table").prepend("<tr><td>1</td><td>cell</td><td>cell</td><td>cell</td></tr>");
}
html

创建行
解决方案 因此,解决方案非常简单。 我的ajax请求返回字符串
“一些文本”
。 因此,不存在
标记,并且在tbody标记中插入不存在的前置代码。
它会在ajax生成代码后自动创建它。因此,您的ajax应该返回
一些文本

这种情况下最简单的解决方案可能是

var data = "<tr><td>1</td><td>cell</td><td>cell</td><td>cell</td></tr>";
$('#table').html( data + $('#table').html());
var data=“1cellcell”;
$('#table').html(数据+$('#table').html());
如果在创建文档后创建元素
#先添加行
,则不能以这种方式使用。您可以将
.on()
与另一个参数一起使用,这样它就会找到类似这样的元素

$("#table").on("click", "#add-row-first",addrowfirst);

如果我正确理解了您的问题,这应该可以做到。有点难理解,但基本上,第一个元素
#table
需要在加载文档时存在,元素
#add row first
可以稍后添加到DOM中,只要它是
#table
jQuery的子元素就知道如何找到它。

$(“#add row first”)。on(“单击”,addrow first);
您确定ajax数据确实添加到了
标记中吗?您可以发布将ajax内容添加到表中的代码吗?在不知道ajax调用实际执行的情况下,很难告诉您解决方案。您的“解决方案”不应该是问题所在,因为浏览器通常会补偿缺少的
tbody
元素。您不应该做的是替换整个表
html
,而是删除/追加行。这是我的第一个想法,但问题的措辞意味着它实际上添加了行,只是位置不正确。另外,您试图描述的是一个委托事件处理程序:)我不确定,我认为整个
#table
元素可能会在DOM创建后加载。同样,使用这个术语也不会使它更容易理解。感谢您提供正确的技术名称。:)只要按钮
addrow first
存在,它就应该工作。有比他们展示的更多的东西:)是的,如果没有OP更多的投入,我不确定。你试过你的建议了吗?假设
#table
引用了
table
标记,则
.html()
返回类似于
..
的内容,将其与
数据
连接将导致
..
无效,并导致
table
变为空。
var data = "<tr><td>1</td><td>cell</td><td>cell</td><td>cell</td></tr>";
$('#table').html( data + $('#table').html());
$("#table").on("click", "#add-row-first",addrowfirst);