如何将锚添加到<;td>;jquery中的标记 $。每个(对象查询,函数(k,v){ var tbl_row=“”; $。每个(此,函数(k,v){ tbl_行+=“+v+”; }) tbl_行+=”; tbl_正文+=“”+tbl_行+“”; }) $(“#201”).html(待定);

如何将锚添加到<;td>;jquery中的标记 $。每个(对象查询,函数(k,v){ var tbl_row=“”; $。每个(此,函数(k,v){ tbl_行+=“+v+”; }) tbl_行+=”; tbl_正文+=“”+tbl_行+“”; }) $(“#201”).html(待定);,jquery,ajax,Jquery,Ajax,我需要添加一个指向选项卡的链接并调用javascript函数,如果我只添加标记,它将工作,但当我添加href=“”和onclick=“”时,它将不工作。这是一个打印在动态表中的AJAX调用数据。最好的方法是使用jquery的“on”事件监听器,它允许将事件监听器绑定到动态添加的html元素。以下是我的建议: 第一次更改: $.each(obj.query, function(k,v) { var tbl_row = ""; $.each(this, function(k , v) {

我需要添加一个指向选项卡的链接并调用javascript函数,如果我只添加
标记,它将工作,但当我添加
href=“”
onclick=“”
时,它将不工作。这是一个打印在动态表中的AJAX调用数据。

最好的方法是使用jquery的“on”事件监听器,它允许将事件监听器绑定到动态添加的html元素。以下是我的建议:

第一次更改:

$.each(obj.query, function(k,v) {
  var tbl_row = "";

  $.each(this, function(k , v) {
    tbl_row += "<td>"+v+"</td>";
  })
  tbl_row += "<td><a href='#' onclick='"+javascript:makeajaxcall(v.uID);+"'>Delete</a></td>";
  tbl_body += "<tr>"+tbl_row+"</tr>";                
})
$("#201").html(tbl_body);
tbl_row += "<td><a href="#" onclick='"+javascript:makeajaxcall(v.uID);+"'>Delete</a></td>";

冒着为你工作的风险

改变

$(document).on('click', '#makeajaxCallTirggerId', function(e){
   makeajaxcall($(this).attr('data-ajaxParam'));
});
tbl_行+=”;

tbl_行+=”;
…注意语法突出显示的差异,它给出了答案

问题是您试图将href=”“和onclick=”“添加到由“”包围的字符串中。您需要添加href=''和onclick=''。类似的情况见本帖

编辑 如果我理解正确,OP面临的实际问题是如果调用javascript:makeajaxcall(v.uID);如果失败,则表的创建也会失败因此OP实际需要的是一种方式,即使出现错误,也能优雅地继续创建表。

处理这个问题的最佳方法是将函数的内容包装在一个try/catch中。如果您在makeajaxcall函数中这样做,那将是最好的


我们真正需要看到的代码是makeajaxcall函数中的代码,因为这似乎就是问题所在。

由于您的引用,这可能无法满足您的需要。您不会在需要的时候结束它们,onclick函数应该使用HTML引号。应该是这样的

tbl_row += "<td><a href='#' onclick='"+javascript:makeajaxcall(v.uID);+"'>Delete</a></td>";
tbl_行+=”;

这就是为什么在JavaScript和PHP中我总是使用单引号('),而在HTML中我总是使用双引号(“).

看问题中的代码突出显示。你看到可能的问题了吗?对不起,我没听懂你的意思。不,那是你,你原来的问题就是这样的,请看@chris'的答案below@user2422387我只对您的文本做了一些更正,并删除了多余的
CodeIgniter
标记。代码正是您编写它的方式。@holodoc您也应该删除
php
tag;)您是如何设法重复OP犯下的同样错误,并在过程中给出答案的?@zhumingvictor复制/粘贴语法错误仍然存在于“to”中“sectionThis is ok我在anchor标记中设置了值,但现在无法执行,因为makeajaxcall在外部调用。函数的参数可以保存在anchor dom中,然后从dom中检索。查看我所做的更改。很可能OP的意思是编写
onclick=“makeajaxcall(v.uID);”
,而不是串联函数的返回值。@user2422387“not working”在堆栈溢出时没有任何意义。您是否收到错误消息,或者在您最喜爱的浏览器的web/js控制台中显示错误?@Juhana这可能是。user2422387您能澄清一下是不是这样吗?嘿,没有错误,如果ajax调用中有一个小问题,即使没有错误消息,它也不起作用@chris.nesbit1这是因为您的onclick不起作用。您希望它在单击时进行ajax调用。单击链接时,该链接对v一无所知。我建议输入一些ID,但如果您知道这种格式不会改变,您可以这样做
onclick='makeajaxcall(this.parent().first());'
tbl_row += "<td><a href="#" onclick='"+javascript:makeajaxcall(v.uID);+"'>Delete</a></td>";
tbl_row += "<td><a href='#' onclick='"+javascript:makeajaxcall(v.uID);+"'>Delete</a></td>";
tbl_row += "<td><a href='#' onclick='javascript:makeajaxcall(v.uID);'>Delete</a></td>";