动态按钮没有点击JS

时间:2014-08-14 12:18:29

标签: javascript html servlets

我正在解析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);
        }
    }
};

2 个答案:

答案 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;
    }