Дайте объект, который вызывает функцию

0

Я новичок в 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'

Что не так?

Теги:

2 ответа

5
Лучший ответ

Вы проходите элемент 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.

  • 0
    +1 За объяснение.
1

Это связано с тем, что f не является объектом jquery. Вы должны использовать $(f) Попробуйте следующее:

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

демонстрация

Ещё вопросы

Сообщество Overcoder
Наверх
Меню