id
是HTML的属性或属性吗?
我应该$('#selector').attr('id');
还是$('#selector').prop('id');
我读了很多文章,但仍然感到困惑。
有人可以向我解释一下属性和属性之间的区别吗? HTML / JS中的属性是非常简单的语言吗?
答案 0 :(得分:130)
属性由HTML定义。属性由DOM定义。
某些HTML属性具有1:1映射到属性。 id
就是这样的一个例子。
有些没有(例如value
属性指定输入的初始值,但value
属性指定当前值。
答案 1 :(得分:4)
是的,attr适用于html属性,因为它们是严格定义的。道具是属性。
例如,假设您有一个节点elem,类为“something”(原始元素不是jQuery对象)。 elem.className是属性,但是属性所在的位置。更改class属性也会自动更改属性,反之亦然。
目前,attr是混乱和混乱的,因为它已经尝试了两个功能的工作,因此存在许多错误。 jQuery.fn.prop的引入将解决几个阻塞程序,它应该从头开始分离代码,并为开发人员提供更快的功能来执行他们期望的操作。
让我在一秒内构成一个百分比,并说根据我在支持IRC和阅读其他代码的经验,attr的95%用例不必转换为prop。
<强> See More 强>