Javascript 用于id以外的其他属性的jQuery选择器不';我不能以同样的方式工作
在HTML页面中,如果我在控制台中键入Javascript 用于id以外的其他属性的jQuery选择器不';我不能以同样的方式工作,javascript,jquery,Javascript,Jquery,在HTML页面中,如果我在控制台中键入$(“#title”)[0],我会得到: <div id="title" class="ms-font-xxl ms-fontColor-neutralSecondary ms-fontWeight-semilight">Change Case</div> 更改案例 嗯。如果我键入$(“#title”)[0].id,我会得到“title” 问题是,当我键入$(“#title”)[0]。class,我会得到未定义的 我是否应该获得m
$(“#title”)[0]
,我会得到:
<div id="title" class="ms-font-xxl ms-fontColor-neutralSecondary ms-fontWeight-semilight">Change Case</div>
更改案例
嗯。如果我键入$(“#title”)[0].id
,我会得到“title”
问题是,当我键入$(“#title”)[0]。class
,我会得到未定义的
我是否应该获得ms font xxl ms fontColor neutralSecondary ms fontWeight半轻版
?我做错了什么?两种方法:
在jQuery1.6之前,请使用.attr()
在jQuery 1.6+之后,使用.prop()
jQuery方法.prop()
:$('#title').prop('class')
JS方法.className
:$('#title')[0]。className
因为您使用的是jQuery,所以只需使用第一个选项=D
.prop
参考:
Element.className
参考:
console.log($('title').prop('class');
log($('#title')[0].className);
//获取类名的数组
console.log($('#title')[0].className.split(/\s+/)代码>
更改案例
获取案例的两种方法:
在jQuery1.6之前,请使用.attr()
在jQuery 1.6+之后,使用.prop()
jQuery方法.prop()
:$('#title').prop('class')
JS方法.className
:$('#title')[0]。className
因为您使用的是jQuery,所以只需使用第一个选项=D
.prop
参考:
Element.className
参考:
console.log($('title').prop('class');
log($('#title')[0].className);
//获取类名的数组
console.log($('#title')[0].className.split(/\s+/)代码>
更改案例
尝试
并非所有属性都可以立即抓取尝试
不是所有的属性都可以立即抓取谢谢,但有些东西我不明白。为什么$('title').prop('class')
有效,而$('title')[0]。prop('class')
无效$(“#title”)
返回一个数组,因此我们应该在尝试通过prop(“class”)
访问其属性之前访问数组的一个元素,不是吗?@FelipeCostaGualberto id对于每个页面都是唯一的,因此$(“#title”)
将只返回一个结果。@FelipeCostaGualberto如果您打印出$(“#title”)[0]
它是原始HTML,使用原生JS方法。className
你也会得到类名,但我现在明白了,我同意。也许这不是一个好的做法,因为它会将JS与jQuery混合使用。@FelipeCostaGualberto来看看这个console.log($('#title'))代码>jQuery添加了太多的方法,[0]
是原始的HTMLTanks,但有些东西我没有得到。为什么$('title').prop('class')
有效,而$('title')[0]。prop('class')
无效$(“#title”)
返回一个数组,因此我们应该在尝试通过prop(“class”)
访问其属性之前访问数组的一个元素,不是吗?@FelipeCostaGualberto id对于每个页面都是唯一的,因此$(“#title”)
将只返回一个结果。@FelipeCostaGualberto如果您打印出$(“#title”)[0]
它是原始HTML,使用原生JS方法。className
你也会得到类名,但我现在明白了,我同意。也许这不是一个好的做法,因为它会将JS与jQuery混合使用。@FelipeCostaGualberto来看看这个console.log($('#title'))代码>jQuery添加了很多方法,而[0]
就是原始HTML
$('#title').attr('class')