HTML - 属性与属性

IT技术 javascript jquery html
2021-01-23 06:54:11

idHTML 的属性还是属性?

我应该做$('#selector').attr('id');还是$('#selector').prop('id');

看了很多文章,还是一头雾水。

有人可以用非常简单的语言向我解释 HTML/JS 中的属性和属性之间的区别吗?

2个回答

属性由 HTML 定义。属性(在 DOM 元素上)由 DOM 定义(还有 HTML 5,它模糊了标记和 DOM 之间的边界)。

某些 HTML 属性具有到属性的 1:1 映射。id就是这样的一个例子。

有时名称不同。class属性映射到className属性和value属性映射到defaultValue属性(当value属性没有对应的属性)。

当我最初写这个答案时,我认为存在没有 1:1 映射到属性的属性。有了这个更新,我再也想不起来了(并且对上面的例子做了更正)。

这是一个很好的秋葵剃刀答案。其他页面上的许多其他答案都进入了风袋哲学讲座。这是答案,只是为您提供了您需要了解的内容。
2021-04-05 06:54:11
是否总是有一个属性对应于每个属性?属性值和属性值之间是否始终存在初始的 1:1 映射?
2021-04-08 06:54:11

是的,attr 用于 html 属性,因为它们是严格定义的。prop 用于属性。

例如,假设您有一个节点元素,其类为“something”(原始元素不是 jQuery 对象)。elem.className 是属性,但它是属性所在的位置。更改类属性也会自动更改属性,反之亦然。

目前,attr 是混乱和混乱的,因为它试图同时完成这两个功能的工作,因此存在许多错误。jQuery.fn.prop 的引入将解决几个阻塞问题,分离代码,因为它应该从一开始就分开,并为开发人员提供更快的功能来完成他们期望他们做的事情。

让我先补一个百分比,然后说根据我在支持 IRC 和阅读其他代码方面的经验,attr 的 95% 用例将不必切换到 prop。

查看更多