Я новичок в jQuery, и я пытаюсь дать объект, который запускает функцию и получает ее родительский идентификатор. У меня есть 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);
}
Но я получаю сообщение об ошибке:
Uncaught TypeError: Object # не имеет метода 'parent'
Что не так?
Вы проходите элемент DOM, вам нужно преобразовать его в объект jQuery:
function DeleteMaster(f){
var master = $(f).parent().attr('id');
alert (master);
}
НО
Вы не должны объявлять обработчики 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.
Это связано с тем, что f
не является объектом jquery. Вы должны использовать $(f)
Попробуйте следующее:
function DeleteMaster(f){
var master = $(f).parent().attr('id');
alert (master);
}