我正在解析JSON数据以添加到表中,我需要实现分页。要对数据进行排序,标题元素必须是按钮。代码运行正常,除了排序部分。按钮不会生成任何事件。谁能告诉我我做错了什么?
添加按钮
for ( var x in res) {
for ( var y in res[x]) {
tableData += "<td>";
tableData += "<input type=\"button\" value=\"" + y
+ "\" onclick=\"loadData(" + y + ")\" />";
tableData += "</td>";
alert(tableData);
}
break;
}
loadData函数
function loadData(modi) {
var xhr = getXMLHttpRequest();
xhr.open("GET", "DbServlet?modifyQ=" + modi, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
res = JSON.parse(xhr.responseText);
paginate(res);
}
}
};
答案 0 :(得分:0)
在fiddle here上测试了您的代码,您可能会遇到数据问题。你的代码没有向html添加按钮这么多的缺失点。我希望小提琴有所帮助。
最好使用console.log,或者打印“alert”的div很烦人。
var tableData = "";
window.loadData = function (a){
$("#result").html(a);
}
var res = {"btn1":[11,12],"btn2":[21,22]};
for ( var x in res) {
for ( var y in res[x]) {
tableData += "<td>";
tableData += "<input type=\"button\" value=\"" + y
+ "\" onclick=\"loadData(" + y + ")\" />";
tableData += "</td>";
//alert(tableData);
}
$("#test").append($(tableData));
break;
}
答案 1 :(得分:0)
我努力了,发现了错误。它是单引号和双引号的简单问题。由于我使用字符串值作为参数,因此我应该使用 '" ... "'
而不是"..."
的组合。
工作代码是:
for ( var x in res) {
for ( var j in res[x]) {
tableData += "<td>";
tableData += "<input type='button' value ='" + j
+ "' onclick=\"loadData('" + "50r7" + j + "')\"/>";
tableData += "</td>";
}
break;
}