Joh*_*eti 10 javascript css jquery class
我有以下代码:
<script type="text/javascript">
$("*").click(function(event){
var x = event.target;
if (x.nodeName == "DIV"){
alert(x.attr("class"));
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
这将引发"未定义"例外...是否有任何其他方式来获取类引发的"click"事件的元素?先感谢您!
Vis*_*ioN 13
event.target是一个DOM对象.因此,要使用jQuery方法,您必须将其转换为jQuery对象:
alert($(x).attr("class"));
Run Code Online (Sandbox Code Playgroud)
否则,您可以使用property className来获取元素的类:
alert(x.className);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,在您的示例中,您可以简单地使用this关键字而不是event.target.
jQuery 提供了一些语法糖来帮助您进行检查 -.is()允许您根据任何其他有效选择器验证元素:
var $target = event.target;
if ($target.is('div')){
alert($target.attr('class'));
}
Run Code Online (Sandbox Code Playgroud)
还有一些进一步的变化需要考虑:
.click(handler)被显式分配给匹配元素(您的情况中的每个元素)。这增加了开销;该处理程序也不会应用于执行处理程序分配后动态添加的任何元素。相反,使用委托处理程序on()$('div')this这几乎是惯例经过所有这些更改后,代码变得更小且更具可读性:
$('div').on('click', function() {
alert($(this).attr('class'));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20465 次 |
| 最近记录: |