【问题标题】:sending ajax json inputs to appended onclick js function发送 ajax json 输入以附加 onclick js 函数
【发布时间】:2017-11-27 21:46:00
【问题描述】:

我有一个 div 区域,我在其中添加了一些来自 ajax 成功函数的 json 输入。

function rowClicked(term){
$.ajax({
    url: "/student/transcript_detail",
    data:{term:term},
    on:"/student/transcript_detail",
    method:"POST",
    success: function(responseJson) {
        $('#course-brief-row').empty();
        $('#nomre_term_body').empty();
        $.each(responseJson, function(index,termDetail){
            $("#course-brief-row").append("<a class='style-item' onclick='courseClicked(${termDetail.coirseId},${term})'>" +termDetail.coursename+"<br>"+
                                            termDetail.grade+"<br>"+
                                            termDetail.stat+"<br>"+
                                            "<p><br>&nbsp;</p>"+
                "</a>");""
        });
    },
    error: function () {
        alert("ERROR");
    }

});

然后我希望每个添加的&lt;a&gt; 标记,发送我的 json 参数作为他们的onclick 函数调用的输入,

function courseClicked(coid,term){
    //do sth
}

现在我想知道我应该如何发送这个参数? 换句话说,我应该如何写这部分:

onclick='courseClicked(${termDetail.coirseId},${term})

【问题讨论】:

  • 你的困难是什么?它是 onclick 的事件监听器。是你的 Json 的构造,还是我不知道的另一个。或者你想通过 AJAX 从一个 Json 发送多个数据?
  • @JoseMarques 我在这里写的不起作用,我想知道语法是否有问题?
  • 首先,您的控制台是否有任何错误?第二次在你的 AJAX 中使用完整的函数错误,更多信息使用这个链接:stackoverflow.com/questions/6792878/jquery-ajax-error-function
  • @JoseMarques 不,我的控制台中没有错误。此外,我评论了所有 courseClicked 的代码,除了 alart() 并且它仍然无法正常工作。
  • 您从 ajax 获得的数据是预期的吗?你收到什么样的数据?要查看此内容,请转到浏览器的控制台并检查您收到的数据。

标签: javascript java jquery json ajax


【解决方案1】:

我想这应该足够了-

onclick='courseClicked("+termDetail.coirseId+","+term+")'

它是一个普通的 javascript 变量,无论如何你都在传递。

试试小提琴 - https://jsfiddle.net/607notn6/

【讨论】:

  • 试试我添加的小提琴。它工作得很好。这可能与您正在寻找的完全相似。
  • 我的函数参数之一是直接从服务器获取的 JSON 对象。这有可能阻止我的功能正常工作吗?也许 JSON 对象必须有不同的语法。
  • 您可以执行 console.log() 来检查 json 对象是否已填充并且您是否正确访问它。您需要在$("#course-brief-row").append... 语句之前添加语句console.log(termDetail.coirseId+","+term)alert(termDetail.coirseId+","+term)
  • 尝试将你的函数声明更新为courseClicked = function(coid,term){..}的函数表达式。
  • json 对象正在正确填充。但我不知道用这种 decleration 更新我的函数:(
【解决方案2】:

这是示例,现在您需要多做一些工作。

var var_text = "ola";
var a = document.createElement('a');
var linkText = document.createTextNode("my title text");
a.appendChild(linkText);
a.title = "my title text";
a.setAttribute('onclick', 'fuction_test(var_text)');
document.body.appendChild(a);
function fuction_test(var_text1){
  alert(var_text1);
}
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

如有疑问,请寻求我的帮助。我会尽力帮助你的。

【讨论】:

  • 感谢您的好意,它指导了我很多。它正在工作:)
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2013-05-21
  • 2018-07-15
  • 1970-01-01
  • 2017-06-16
  • 2015-05-29
  • 2017-11-01
  • 2020-02-29
相关资源
最近更新 更多