使用Javascript向表添加按钮

时间:2014-05-16 14:46:33

标签: javascript button html-table

function OnSuccess(xml) {

  document.getElementById("people").innerHTML = "<tr><td>Employee ID</td><td>First Name</td><td >Last Name</td></tr>";

  $(xml).find('Table').each(function () {
    var id = $(this).find('EmployeeID').text();
    var fn = $(this).find('FirstName').text();
    var ln = $(this).find('LastName').text();

    //Create  button
    var btn = document.createElement("input");

    //Set the attributes
    btn.setAttribute("onclick", "ServiceCall3(id)");
    btn.setAttribute("type", "button");
    btn.setAttribute("value", "Info");
    btn.setAttribute("name", id);
    $('#people').append('<tr><td>' + id + '</td><td>' + fn + '</td><td>' + ln + '</td><td> '+ btn + '</td></tr>')
  }

)};

嘿,这是我的函数,它是从xml文件创建一个表。 我需要的是添加一个id与读取参数相同的按钮来自xml,即每行的结尾。 我得到的不是按钮就是[object HTMLInputElement]。 请帮忙。

伟大,快速的反应。 你现在能告诉我如何将id值传递给ServiceCall3?或在ServiceCall3中使用它?

function serviceCall3(id) {
            $.ajax({
                type: "POST",
                url: "../TestWebService.asmx/GetAll",
                data: "{'data' :" + id + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "xml",
                success: OnSuccess3,
                error: OnError
            });
             }  

4 个答案:

答案 0 :(得分:2)

问题是您正在尝试将DOM元素(btn)连接成一个字符串(导致[object HTMLInputElement])。相反,你应该追加它:

$('#people').append(
    $('<tr></tr>').append(
        $('<td></td>').text(id),
        $('<td></td>').text(fn),
        $('<td></td>').text(ln),
        $('<td></td>').append(btn)
    )
);

这会创建行和四个单元格,而不会将内容连接到原始HTML中。

答案 1 :(得分:1)

id已经是文字,因此只需id代替$(id).text()

btn.setAttribute("name", id);

答案 2 :(得分:0)

var id = $(this).find('EmployeeID').text();

您已将id指定为文字。

但同样,你正在写$(id).text()

 btn.setAttribute("name", $(id).text());

更新上面一行
 btn.setAttribute("name", id);

此外,您正尝试将btn附加到字符串。这是转换btn.toString以打印值。

而是使用单独添加btn来解决问题。

答案 3 :(得分:0)

这是因为你将button-element写成一个字符串:

<td> '+ btn + '</td>