将jquery对象传递给javascript onclick

时间:2017-11-23 16:30:19

标签: javascript jquery

我试图这样做:

var linha = $(this).parent().parent()

$("#modal-footerMsg").append(
         "<button type='button' id='btnOK' 
                       class='btn btn-md' onclick='RemoveLinha(" + linha + ");'> OK");

将执行此功能:

function RemoveLinha(element) {
    element.parent().parent().remove();
}

我该怎么做?将jquery对象传递给函数?

2 个答案:

答案 0 :(得分:2)

您在添加HTML之后附加事件监听器

$(document).ready(function(){
var linha = $("#removeElm")
$("#modal-footerMsg").append("<button type='button' id='btnOK' class='btn btn-md'> OK</button>");

$("#btnOK").on("click",function(){
RemoveLinha(linha);
})

function RemoveLinha(element) {
    element.remove();
}
})

答案 1 :(得分:1)

目前,您正在尝试将一个jQuery对象 - 实际上是一个对象,而不是它的字符串表示形式 - 放入一个字符串中。这不会奏效。

您已经在使用jQuery,它非常适合构建元素并在这些元素上创建事件处理程序,而无需恢复设置onclick=""的内联字符串。单独创建按钮元素,设置click事件处理程序,然后将其附加到模式:

// get parent element
var linha = $(this).parent().parent();

// create a button
var button = $('<button type="button" id="btnOK" class="btn btn-md" />');

// add click event handler to button
button.click(function() { RemoveLinha(linha); });

// append button and text to modal
$("#modal-footerMsg").append(button, "OK");

或者如果你想要简洁而又凌乱:

var linha = $(this).parent().parent();

$("#modal-footerMsg").append(
    $('<button type="button" id="btnOK" class="btn btn-md" />')
        .click(function() { RemoveLinha(linha); }),
    "OK"
);