Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何知道使用jQuery click事件的是哪种类型的Html对象?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何知道使用jQuery click事件的是哪种类型的Html对象?

Javascript 如何知道使用jQuery click事件的是哪种类型的Html对象?,javascript,jquery,html,Javascript,Jquery,Html,如何知道使用jQuery单击了哪种类型的HTML对象 例如,如果我点击按钮,它会告诉我这是按钮对象或文本输入或文本区域。。。像那样 我为什么问这个问题 因为我正面临着这样一个问题 我有一个文本区域,下面是文件输入HTML对象。我已经将插入符号函数(返回Textarea中当前光标位置)绑定到该Textarea。但当我点击浏览按钮上传文件时,它给了我一个错误。因此,我想通过知道单击事件中的HTML对象是哪种类型来防止这种情况 function(e){ var type=$(this).pro

如何知道使用jQuery单击了哪种类型的HTML对象

例如,如果我点击按钮,它会告诉我这是按钮对象或文本输入或文本区域。。。像那样

我为什么问这个问题

因为我正面临着这样一个问题

我有一个文本区域,下面是文件输入HTML对象。我已经将插入符号函数(返回Textarea中当前光标位置)绑定到该Textarea。但当我点击浏览按钮上传文件时,它给了我一个错误。因此,我想通过知道单击事件中的HTML对象是哪种类型来防止这种情况

function(e){
    var type=$(this).prop('tagName'); // I think it will need jQuery >1.6
    // or
    var type=$(this)[0].tagName;
}
事实上,过去有很多关于这个问题的帖子。

在点击事件中

function(e){
    var type=$(this).prop('tagName'); // I think it will need jQuery >1.6
    // or
    var type=$(this)[0].tagName;
}
事实上,过去有很多关于这个问题的帖子。

你可以这样做

$(".myBtn").click(function(){

       alert($(this).prop("tagName"));

});
使现代化 这是一个

你可以随意做

$(".myBtn").click(function(){

       alert($(this).prop("tagName"));

});
使现代化 这里有一个

或者可以使用

 $(this).prop('tagName');
参考

或者可以使用

 $(this).prop('tagName');
参考


测验
$(“输入,文本区域”)。在('click',函数(e)上{
$(“#log”).html(“单击:+event.target.nodeName+”类型:+this.Type);
});

测验
$(“输入,文本区域”)。在('click',函数(e)上{
$(“#log”).html(“单击:+event.target.nodeName+”类型:+this.Type);
});
$(e.target)-包含用户单击的DOM元素。我们可以使用此对象获取用户单击的对象的任何内容

e、 target始终是被单击的顶部元素。因此,虽然屏幕上的每次单击从技术上讲都是对主体的单击,但e.target将始终返回树中占据单击区域最远的子元素。但是,我们可能有多个绝对定位的元素占据同一区域。在这种情况下,将返回z索引较高的元素。

$(e.target)-包含用户单击的DOM元素。我们可以使用此对象获取用户单击的对象的任何内容

e、 target始终是被单击的顶部元素。因此,虽然屏幕上的每次单击从技术上讲都是对主体的单击,但e.target将始终返回树中占据单击区域最远的子元素。但是,我们可能有多个绝对定位的元素占据同一区域。在这种情况下,将返回z索引较高的元素。

您可以使用attr(“标记名”),它将返回标记的名称

示例代码片段:假设您单击id为#myId的某个元素,然后绑定click事件并获取attr(“标记名”)(jQuery方式)

这应该会有所帮助。

您可以使用attr(“标记名”),它将返回标记名

示例代码片段:假设您单击id为#myId的某个元素,然后绑定click事件并获取attr(“标记名”)(jQuery方式)


这应该会有所帮助。

您还可以使用一些DOM属性来获取对象类型:

e.target.nodeName

例如:

HTML-

<input class="Track" type="button" value="Submit" />
 <button class="Track">Submit</button>

您还可以使用一些DOM属性来获取对象类型:

e.target.nodeName

例如:

HTML-

<input class="Track" type="button" value="Submit" />
 <button class="Track">Submit</button>

我觉得,如果您想为不同的点击提供不同的行为,您应该为不同的对象类型使用不同的事件处理程序。@jfriend00,实际上我支持使用XML在Web应用程序中进行内联编辑。当用户单击一个元素,然后我动态创建Textarea,并在其下方输入if“file”。现在,当我单击文件输入时,绑定到Textarea的函数出现JavaScript错误:(如果按钮区域中的事件转到它旁边的文本区域,则会出现问题。这是不应该发生的。如果事件在层次结构中冒泡,而这正是您试图处理的问题,那么这是另一个问题,可能有几种不同的方法来解决它,但我们必须更多地了解HTML结构。)正确并查看相关代码以了解推荐内容。根据对象类型进行分支的一大块代码通常不是最好的设置方式(不是非常面向对象或封装)。通过跟踪,我发现
jquery-1.7.1.min.js
正在解决问题。当我对jquery的包含进行注释时,文件输入工作正常,但当我取消注释时,文件输入停止。您可以看到,在我看来,如果要为不同的单击提供不同的行为,您应该为不同的对象类型使用不同的事件处理程序。@jfriend00,实际上我支持使用XML在Web应用程序中进行内联编辑。当用户单击某个元素,然后我动态创建Textarea,并在“文件”输入的下方创建。现在,当我单击文件输入时,绑定到Textarea的函数发生JavaScript错误:(如果按钮区域中的事件转到它旁边的文本区域,则会出现问题。这是不应该发生的。如果事件在层次结构中冒泡,而这正是您试图处理的问题,那么这是另一个问题,可能有几种不同的方法来解决它,但我们必须更多地了解HTML结构。)正确并查看相关代码以了解推荐内容。根据对象类型进行分支的一大块代码通常不是最好的设置方式(不是非常面向对象或封装)。通过跟踪,我发现
jquery-1.7.1.min.js
存在问题。当我对jquery的包含进行注释时,文件输入工作正常,但当我取消注释时,文件输入停止。您可以查看第二种情况,即
此.tagName
$(此)[0].tagName
因为它是DOM元素的一个属性,而不是jQuery对象。谢谢DGS。这不是我第一次忘记它。如果元素是
,怎么办?在您的情况下,它将返回
输入
。我想用户想要“按钮”op
这个。键入
会很有用。第二种情况必须是