Как получить элемент HTML из события в jquery? - PullRequest
3 голосов
/ 09 октября 2011

В функции jQuery я получаю событие о событии click элемента формы.Теперь я хочу получить его HTML.Как это возможно?

Например:

function(event, ID, fileObj, response, data) {
    alert( $(event.target) );            // output: [object Object]
    alert( event.target );               // output: [object HTMLInputElement]
    alert( $(event.target).html() );     // output: (nothing)    
}

Я хочу получить объект формы, элемент которого нажимается через event

Спасибо

Ответы [ 3 ]

9 голосов
/ 09 октября 2011

Вы можете попробовать event.target.outerHTML, однако я не уверен, насколько хорошо он поддерживается во всех браузерах.Более сложное, но верное решение - заключить элемент в другой элемент, а затем взять html родительского элемента:

$('<div/>').html($(event.target).clone()).html();
3 голосов
/ 19 ноября 2012

Если ваше событие click, вы можете связать его, используя метод click() из jQuery.Используйте this, чтобы добраться до вашего элемента, как показано ниже:

$('#id').click(function(event){
  console.log($(this));
});
1 голос
/ 15 июня 2015

Самое элегантное решение, которое я нашел, - это просто использовать свойства цели события. Вот пример того, как обнаружить html-тег источника события. В этом примере предполагается, что вы связали событие щелчка элемента списка неупорядоченного списка с именем класса CSS myUnorderedList , но хотите отключить действие по умолчанию, если щелкнуть тег привязки в элементе списка :

$('ul.myUnorderedList').on('click', 'li', function(event){ 

    console.log('tagName: '+ event.target.tagName);    //output: "a"
    console.log('localName: '+ event.target.localName);//output: "a"
    console.log('nodeName: '+ event.target.nodeName);  //output: "A"

    if(event.target.tagName == 'a')
        return; // don't do anything...

    // your code if hyperlink is not clicked
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...