Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 追加表的行后无法获取dom元素_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 追加表的行后无法获取dom元素

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

我想从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>
    <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);