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