给一个调用函数的对象

时间:2014-05-19 13:21:50

标签: javascript jquery html

我是jQuery的新手,我正在尝试提供一个触发函数并获取其父级ID的对象。我有HTML:

<tr id="9"><td>First</td><td class="edit"></td><td class="delete" onclick="DeleteMaster(this)"></td></tr>

和jQuery函数:

    function DeleteMaster(f){
    var master = f.parent().attr('id');
    alert (master);
}

但是我收到了一个错误:

未捕获的TypeError:对象#没有方法'parent'

怎么了?

2 个答案:

答案 0 :(得分:5)

您正在传递DOM元素,您需要将其转换为jQuery对象:

function DeleteMaster(f){
    var master = $(f).parent().attr('id');
    alert (master);
}

<强> BUT

您不应该声明onclick这样的处理程序。这是一种不好的做法,如果你想在将来改变它会导致麻烦。标准的jQuery服务方式是:

// Wait for DOM to become ready
$(function() {
    // This replaces your "onclick" and "DeleteMaster" function
    $(".delete").on("click", function() {
        // Now you can access that <td> by calling $(this)
        var master = $(this).parent().attr("id");
    });
});

这样,您就不必在HTML标记中添加代码。

答案 1 :(得分:1)

这是因为f不是jquery对象。你应该使用$(f)。试试这个:

 function DeleteMaster(f){
  var master = $(f).parent().attr('id');
  alert (master);
}

<强> Demo