href 应该用 prop() 还是 attr() 设置? [复制]

Posted

技术标签:

【中文标题】href 应该用 prop() 还是 attr() 设置? [复制]【英文标题】:Should href be set with prop() or attr()? [duplicate] 【发布时间】:2013-08-13 22:24:44 【问题描述】:

如果我想动态更改链接的href,我应该使用prop() 还是attr()

【问题讨论】:

不是重复的。对于href 之类的问题,该问题的答案尚不清楚。在去突击队之前请阅读问题和答案。 我希望人们知道那些“骗子”分别是 5 岁和 2 岁......从那时起 jQuery 发生了变化,而且都不合适 它们绝对合适且相关。使用 .attr 和 .prop 之间的唯一决定因素是您是要修改属性还是属性。就 .prop 和 .attr 而言,jQuery 的功能现在几乎与 1.6.0 发布时完全相同。 .prop() vs .attr() 问题特别针对href 引起了很好的讨论 - 表明当您使用prop 检索href 时,您将获得完整路径,而attr 获得您无论您放入其中的任何内容,无论是在标记中,还是您使用 javascript 分配给它。设置值看起来并不重要,但检索它肯定有区别。 【参考方案1】:

您将使用.attr(),因为.prop() 更常用于布尔属性,例如checkedselected 等 - 尽管.prop 肯定是可能的,但根据您的意图,它可能不太清楚

虽然我确实相信它们最终在功能方面非常相似(或曾经是)

请注意:jQuery API 网站似乎遵循布尔“摇摆”:

.prop() - 示例使用 checkeddisabled

.attr() - 示例使用 alt titlesrc

【讨论】:

@Francisc 不用担心 - 如果人们在跟随领导者玩之前阅读并理解问题会很好 @Francisc 是的,不用担心 - 我认为必须是 15 分钟 我今天在 IE11 中遇到了一个案例,我尝试使用 prop() 即时修改外部链接锚,并且链接停止在新选项卡中打开(实际上它完全停止开放)。您绝对应该将attr only 用于href @GoneCoding ... 设置网址时。为了检索它,就像@JoeEnos 在他对问题的评论中提到的那样,.attr('href') 将返回标记中的文本值,而.prop('href') 将返回一个绝对 URL(如果适用)。

以上是关于href 应该用 prop() 还是 attr() 设置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery学习之prop和attr的区别

jq中.prop()与attr()的区别

jQuery之attr()和prop()的区别

jQuery之attr()和prop()的区别

jquery中attr和prop的区别

jquery中attr和prop的区别