0

在我解释这个问题之前,让我告诉你我清楚地知道 jQuery removeProp 不应该用于原生属性,例如禁用、选中和选中。https://api.jquery.com/removeProp/

我们将 jQuery 从 1.12.3 升级到 3.6.0。我们使用 JQuery 迁移插件来识别兼容性问题并修复控制台中生成的所有警告。

$(“#x”).removeProp(“disabled”)确实在 1.12.3 中工作并在升级到最新版本后停止工作。但是除非我们手动测试页面,否则我们无法确定问题。我想知道为什么 jQuery 迁移插件没有给我们同样的警告。

我知道我们以前用错了,我们很高兴将其改正为$(“#x”).prop(“disabled”,false)

4

1 回答 1

0

这是一个解释,来自 jQuery Core 团队的 Timmy Willison 在这个错误报告https://github.com/jquery/jquery/issues/4887

我认为这只是一个文档问题。我们应该将其更改为“这可以完全删除该属性或根本没有效果”。我遵循了代码,它只是调用删除,这是正确的。1.x 用于将旧 IE 的属性设置为未定义,这不再是必需的并且在技术上无效。

也就是说,这有点没有实际意义。原因需要更新,但建议仍然有效。您没有理由需要删除本机属性(您也不应该期望它会起作用——Blink 无论如何都让它变得不可能)。这与删除内容属性不同,后者实际上会将相应的属性设置为 false。设置为 false 在这里是正确的。

提出的问题导致.removeProp(). https://github.com/jquery/api.jquery.com/pull/1189

于 2021-05-15T11:34:33.253 回答