2011-10-09 75 views
2

在jQuery函數中,我在窗體的元素單擊事件上獲取事件。現在我想要得到它的html。怎麼可能?如何從jquery中的事件獲取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

感謝

+0

檢查此[鏈接] [1] [1]:http://stackoverflow.com/questions/48239/getting-the-id-of-the-element-that-fired-an-event-using -jquery –

+1

對於輸入元素,使用* val *函數。 html用於容器。 – wisefish

回答

9

點擊你可以試試event.target.outerHTML,但我不知道有多好它支持跨越所有瀏覽器。更令人費解的,但一定要努力的解決辦法是包裝在另一個元素的元素,然後取父元素的HTML:

$('<div/>').html($(event.target).clone()).html(); 
+0

其實我想在這個特殊的表單中添加一些隱藏的字段。我在問這個問題,因爲可能還有其他類型的表單。是'event.target.outerHTML'適合在這種情況下? – Student

+0

所以你想找到父窗體元素? $(event.target).closest('form'); – Jack

+0

太好了。 '$(event.target).closest('form');'正在工作。謝謝 – Student

3

如果您的活動click,你可以使用從jQuery的的click()方法將它綁定。使用this達到你的元素,如下面的代碼:

$('#id').click(function(event){ 
    console.log($(this)); 
}); 
0

最優雅的解決方案,我發現是簡單地對活動對象使用屬性。 這裏是一個如何檢測事件源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 
}); 
相關問題