Javascript jquery或js代码,用于获取网页中当前所选表单项/文本/图像的精确节点数据

Javascript jquery或js代码,用于获取网页中当前所选表单项/文本/图像的精确节点数据,javascript,jquery,Javascript,Jquery,我希望使用jquery在已单击的网页上获取项目的确切详细信息 该项可以是表单项(如复选框、文本框、文本区域等)或文本部分(在段落、div或其他中)或列表或图像 我得出的结论如下-- 现在,我想要确切的细节——即div id/表单id/段落#,即该特定项目的所有细节。如何获取这些数据?我知道这个数据在DOM中是可用的,但我只是不知道在这种特殊情况下如何获取它…使用事件的target属性可能是最好的方法。默认情况下,这将返回一个非jQuery对象,这不是特别有用,但是将其包装在$()中可以解决此问题

我希望使用jquery在已单击的网页上获取项目的确切详细信息

该项可以是表单项(如复选框、文本框、文本区域等)或文本部分(在段落、div或其他中)或列表或图像

我得出的结论如下--


现在,我想要确切的细节——即div id/表单id/段落#,即该特定项目的所有细节。如何获取这些数据?我知道这个数据在DOM中是可用的,但我只是不知道在这种特殊情况下如何获取它…

使用事件的
target
属性可能是最好的方法。默认情况下,这将返回一个非jQuery对象,这不是特别有用,但是将其包装在
$()
中可以解决此问题:

$(function() {
    $(document).bind('click', function(event) {
        var element = $(event.target);

        alert(element.height());    // Get height   
        alert(element.attr('id'));  // Get ID attribute
        // ...
    });
});

如果要修复当前方法,请在
click()
处理程序中,使用
.attr()
和朋友访问该元素的属性:

$(function() {
    $('*').bind('click', function(event) {
        alert($(this).height());    // Get height   
        alert($(this).attr('id'));  // Get ID attribute
        // ...
    });
});
函数范围中的
$(this)
引用单击的元素。jQuery文档中有一个函数列表,这些函数将返回属性和。将返回元素的ID以及其他内容,
$.data()
将返回
数据-*
属性

要获取父元素的属性,只需使用
$(this).parent()
。例如,要获取包含所单击元素的表单的ID,请使用
$(this).nestest('form').attr('ID')。所有内容都与单击的元素相关(
$(this)
),因此您只需使用

但是,使用
$('*').bind()
效率极低;您正在将事件处理程序绑定到页面上的每个元素,而实际上您应该使用
.on()
(jQuery 1.7+)委派事件:


这种方法只将一个事件绑定到
,而不是将一个事件绑定到页面上的每个元素。

使用事件的
目标属性可能是最好的方法。默认情况下,这将返回一个非jQuery对象,这不是特别有用,但是将其包装在
$()
中可以解决此问题:

$(function() {
    $(document).bind('click', function(event) {
        var element = $(event.target);

        alert(element.height());    // Get height   
        alert(element.attr('id'));  // Get ID attribute
        // ...
    });
});

如果要修复当前方法,请在
click()
处理程序中,使用
.attr()
和朋友访问该元素的属性:

$(function() {
    $('*').bind('click', function(event) {
        alert($(this).height());    // Get height   
        alert($(this).attr('id'));  // Get ID attribute
        // ...
    });
});
函数范围中的
$(this)
引用单击的元素。jQuery文档中有一个函数列表,这些函数将返回属性和。将返回元素的ID以及其他内容,
$.data()
将返回
数据-*
属性

要获取父元素的属性,只需使用
$(this).parent()
。例如,要获取包含所单击元素的表单的ID,请使用
$(this).nestest('form').attr('ID')。所有内容都与单击的元素相关(
$(this)
),因此您只需使用

但是,使用
$('*').bind()
效率极低;您正在将事件处理程序绑定到页面上的每个元素,而实际上您应该使用
.on()
(jQuery 1.7+)委派事件:


此方法仅将一个事件绑定到
,而不是将一个事件绑定到页面上的每个元素。

使用页面上的click event目标

$(document).click(function(event){ 
  /* store native dom node*/
   var tgt=event.target;
  /* store jQuery object of dom node*/
   var $tgt=$(tgt);
    /* example element details*/
    var details={ id : tgt.id, height: $tgt.height(), tag : tgt.tagName}
    console.log( details)

})

使用页面上单击事件的目标

$(document).click(function(event){ 
  /* store native dom node*/
   var tgt=event.target;
  /* store jQuery object of dom node*/
   var $tgt=$(tgt);
    /* example element details*/
    var details={ id : tgt.id, height: $tgt.height(), tag : tgt.tagName}
    console.log( details)

})

查看
事件.target
,然后可以使用jQuery的
.parents()
方法查看每个祖先:

$(document).on('click', function(event) {
     var $t = $(event.target); // the element that was actually clicked
     var $p = $t.parents();    // the target's parents

     var $form = $p.filter('form').first(); // the enclosing form, if it exists
});

查看
事件.target
,然后可以使用jQuery的
.parents()
方法查看每个祖先:

$(document).on('click', function(event) {
     var $t = $(event.target); // the element that was actually clicked
     var $p = $t.parents();    // the target's parents

     var $form = $p.filter('form').first(); // the enclosing form, if it exists
});

我还需要父窗体/div的id。。。如果项目在嵌套的div中(即div中的div),该怎么办?如何获取完整的数据?谢谢…使用
event.target
仍然比搜索页面中的每个元素来应用click Handler要高效得多我还需要父表单/div的id。。。如果项目在嵌套的div中(即div中的div),该怎么办?如何获取完整的数据?谢谢…使用
event.target
仍然比搜索页面中的每个元素以应用单击处理程序要高效得多