removeAttribute的疑问

removeAttribute的疑问

我有以下疑问:

  1. removeAttribute是不是跟利用attributes来实现的是一样的? 只可以删除掉自定义属性和显式定义的固有属性?(自己测试过好像是这样子, 想跟老师确认一下)

  2. 先前看见一个回答说:removeAttribute是用来移除自定义属性,恢复固有属性的默认值的。

    那为什么使用JS 设置 checked=true的方式,利用removeAttribute却不能恢复默认值 (在控制台上的property的固有属性列表里面是有看到这个checked属性的。)

  3. 还有一个地方比较混淆, 先前看到一个回答说:

    defaultChecked是DOM对应HTML的checked的属性,但是恢复他们的属性的时候却是使用removeAttribute('checked'); 这是不是说removeAttribute里面填的属性值依然是对应HTML属性的属性名,attributes的xxxNamedItem()方法也是嘛? (同样跟老师确认一下。)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2019-12-28 19:06:55

同学你好,关注下前面回答中的第二条哦,input的checked属性,不能使用removeAttribute()属性删除。还提供了参考代码,可以结合查看下。

祝学习愉快~

好帮手慕糖 2019-12-28 15:42:22

同学你好,关于你的问题,回答如下:

1、是的。removerAttribute可以移出通过setAttribute添加上的属性。

2、如果文档指定了属性默认值,那么removeAttribute只是将其恢复默认值。

input的checked属性,不能使用removeAttribute()属性删除

http://img1.sycdn.imooc.com//climg/5e0703cf09b22fe006590141.jpg

http://img1.sycdn.imooc.com//climg/5e0705f509d7e52117740781.jpg

3、defaultChecked 属性是可返回 checked 属性的默认值。就是说如果单选框或者多选框的默认状态是选中,则返回 true,否则返回 fasle。

这个要结合第二个一起来看,checked属性本身是没有默认值的。这个默认值指的是html加载完毕时checked属性的值,就作为其默认值。

attributes.getNamedItem('')也是用来获取html文档中显示声明的属性的值,可以理解为获取属性值的。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕移动3569406 #1
    嗯嗯,所以defaultChecked是页面加载完后单选框的默认状态。 那单选框在页面加载完了以后,手动点击选中,然后再removeAttribute("checked"),应该是恢复它的默认值才对(恢复到页面加载完后单选框的默认状态),为什么不起作用呢?还是说简单理解就是:checked没有被显式定义在标签上面,所以它没有办法被removeAttribute所操纵? 我测试了input的value也是这样的现象, input.value = 123; 页面上会有变化,但是标签内部却没有出现value属性, 而且也无法用removeAttribute移除。
    2019-12-28 17:58:55
  • 提问者 慕移动3569406 #2
    结尾说错了, 不是移除,是恢复默认值。
    2019-12-28 17:59:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师