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()
更常用于布尔属性,例如checked
、selected
等 - 尽管.prop
肯定是可能的,但根据您的意图,它可能不太清楚
虽然我确实相信它们最终在功能方面非常相似(或曾经是)
请注意:jQuery API 网站似乎遵循布尔“摇摆”:
.prop()
- 示例使用 checked
和 disabled
.attr()
- 示例使用 alt
title
和 src
【讨论】:
@Francisc 不用担心 - 如果人们在跟随领导者玩之前阅读并理解问题会很好 @Francisc 是的,不用担心 - 我认为必须是 15 分钟 我今天在 IE11 中遇到了一个案例,我尝试使用prop()
即时修改外部链接锚,并且链接停止在新选项卡中打开(实际上它完全停止开放)。您绝对应该将attr
only 用于href
。
@GoneCoding ... 设置网址时。为了检索它,就像@JoeEnos 在他对问题的评论中提到的那样,.attr('href')
将返回标记中的文本值,而.prop('href')
将返回一个绝对 URL(如果适用)。以上是关于href 应该用 prop() 还是 attr() 设置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章