我是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'
怎么了?
答案 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 强>