Javascript 追加表的行后无法获取dom元素
我想从serve获取json数据,然后循环表中的行。html代码如下所示:Javascript 追加表的行后无法获取dom元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我想从serve获取json数据,然后循环表中的行。html代码如下所示: <table id="topics_list_table"> <thead> <tr><th>Topic Title</th> <th>Author Name</th> <th>Likes</th> <th>Created Time</th> &l
<table id="topics_list_table">
<thead>
<tr><th>Topic Title</th>
<th>Author Name</th>
<th>Likes</th>
<th>Created Time</th>
<th>Actions</th>
</tr></thead>
<tbody>
</tbody>
</table>
题目
作者姓名
喜欢
创造时间
行动
jQuery部分:
$.ajax({
url: some url here,
type:'GET',
success:function(res){
$.each(res, function(index, value){
$('#topics_list_table > tbody:last').
append(
"<tr>" +
"<td>" + value.title + "</td>"+
"<td>" + value.author_name + "</td>"+
"<td>" + value.likes + "</td>"+
"<td>" + value.created + "</td>"+
"<td>" +
"<a href='/components/topics/" + value.id + "' class='mini ui black buttons' id='detail_check'>check</a>"+
"</td>"+
"</tr>"
);
});
}
});
$.ajax({
url:这里有一些url,
类型:'GET',
成功:功能(res){
$.each(res、函数(索引、值){
$(“#主题(列表)表>正文:最后一个”)。
附加(
"" +
“”+value.title+“”+
“”+value.author\u name+“”+
“”+value.likes+“”+
“”+value.created+“”+
"" +
""+
""+
""
);
});
}
});
我可以从远程获取所有数据,但关键问题是这一部分
<a href='/components/topics/" + value.id + "' class='mini ui black buttons' onclick='somefunction()'>check</a>
我检查了这一页,发现,像
<a href="/components/topics/53cf67fad0c0f7fdda3ef8d5" class="mini ui black buttons" onclick='somefunction()'>check</a>
已存在于dom中
但是
1、无法应用style class=“mini ui黑色按钮”。
2,当您尝试单击“检查”并希望触发somefunction()时。它不起作用
那么,为什么在添加行之后不能获取dom元素呢?或者,有没有其他更好的方法在获取数据后循环行
thx
onclick
属性仅在初始HTML中有效,而不在附加元素中有效。看
相反,请使用或添加事件处理程序:
谢谢您的回答,但是您知道为什么没有显示style class=“mini ui black buttons”吗?这是与序列问题相关的问题吗?还有一个问题是,当我尝试$row.find('.mini.ui.black.buttons')。on('click',somefunction)时;将somefunction替换为function(){alert('hello')};出现错误“UncaughtTypeError:undefined不是函数”JS错误是因为我忘记将
$row
设置为jQuery对象--我的错误。更新答案。不要认为我能帮你回答第一个问题。但是,我刚刚注意到你在多个地方添加了id='detail\u check'
,这是一个不可以的问题——id必须是唯一的。您可以将其更改为“id=”detail\u check“+value.id+””
,这可能会起作用。谢谢。我成功了
success:function(res){
$.each(res, function(index, value){
var $row = $("<tr>" +
"<td>" + value.title + "</td>"+
"<td>" + value.author_name + "</td>"+
"<td>" + value.likes + "</td>"+
"<td>" + value.created + "</td>"+
"<td>" +
"<a href='/components/topics/" + value.id + "' class='mini ui black buttons' id='detail_check'>check</a>"+
"</td>"+
"</tr>");
$row.find('.mini.ui.black.buttons').on('click',somefunction);
$('#topics_list_table > tbody:last').
append($row);
});
}
$('#topics_list_table').on('click', '.mini.ui.black.buttons', somefunction);