【问题标题】:How do I use jquery's prop() to set the attribute of a checkbox?如何使用 jquery 的 prop() 设置复选框的属性?
【发布时间】:2013-04-06 19:17:24
【问题描述】:

我想使用prop() 将复选框的属性设置为checked

当我使用prop("checked",true) 时,我可以直观地看到复选框已选中,但如果我查看 HTML,则没有名为 checked 的属性值。

例如:

<input type="checkbox" class="my_class" checked>

是我在使用prop("checked", true) 后期望看到的。 但是,我没有看到 HTML 代码有任何变化。我想稍后参考是否设置了属性checked,但是由于HTML中没有名为checked的属性,所以我无法引用它。

【问题讨论】:

  • 您仍然可以稍后在页面中引用它。

标签: javascript jquery checkbox attributes prop


【解决方案1】:

当使用prop() 时,您更改的是属性而不是属性,因此在 DOM 检查器中无法看到更改,但所有意图和目的都已更改。

要稍后查看元素是否被选中,您可以这样做:

$('.my_class').is(':checked')

无论您在 DOM 检查器中看到什么,它都会在选中时返回 true,在未选中时返回 false。

【讨论】:

  • 问题是复选框在表单内,保存时设置为display:none。当我稍后去查看表单时(通过设置display:block,没有选中任何复选框。这是为什么?
  • @NancyCollier - 应该可以正常工作 -> FIDDLE ?
【解决方案2】:

您是否有特定原因不为此应用程序使用 attr()?

如果不是,那你应该使用它来代替 prop()

【讨论】:

  • adeneo 在他的评论中说得很好:“使用 prop() 时,您更改的是属性而不是属性,因此在 DOM 检查器中看不到更改”
  • 是的,并且该属性确实是您想要更改的内容,这就是为什么prop() 将是首选方法的原因,只是一开始看不到 DOM 中的事情发生变化有点令人困惑检查员。
  • 我认为 attr() 在 1.9 版中已被弃用?
  • @NancyCollier - 不用于实际属性,可能用于属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 2010-09-09
  • 1970-01-01
  • 2018-01-10
相关资源
最近更新 更多