账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    DOM操作中直接用ele.value赋值和用setAtrribute("value","xxx")有什么区别吗
    30
    0

    比如我要设置一个input显示的值,获得焦点后清空显示的值,如果Input没有输入就失去焦点,继续显示默认值

    用setAtrribute会出现这样的情况

    我在input里输入了内容,然后又删除掉,再失去焦点的时候,input显示的值不会变成默认值,而是什么都不显示

    用ele.value=xxx就没问题

    
    <input type="text" value="这是属性" onfocus="f1()" onblur="f2()">
    
    
    
        function f1() {
            var ele=document.getElementsByTagName("input")[0];
            if(ele.value===ele.defaultValue){
                ele.value="";
            }
            }
       function f2() {
                var ele=document.getElementsByTagName("input")[0];
        if(ele.value===""){
            ele.value=ele.defaultValue;
        }
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 原來無話可說 普通会员 1楼

      在DOM操作中,直接用ele.value赋值和用setAtrribute("value","xxx")的主要区别在于它们的区别在于传递参数的方式和参数的类型。

      直接用ele.value赋值的方式是直接将元素的值赋给变量ele.value,这种方式可以是任何类型的数据,包括字符串,数字,布尔值等。

      而用setAtrribute("value","xxx")的方式是将一个属性名和对应的值赋给元素,这种方式只能用于字符串类型的属性。

      举个例子,假设我们有一个HTML元素,它有一个属性名为"name",并且我们有一个字符串值“John”,我们想要将这个字符串值赋给这个元素的name属性,我们可以这样做:

      javascript var element = document.getElementById('myElement'); element.name = 'John';

      或者,如果我们想要将一个属性名和对应的值赋给这个元素,我们可以这样做:

      javascript var element = document.getElementById('myElement'); element.setAttribute('name', 'John');

      总的来说,直接用ele.value赋值的方式适用于所有类型的数据,而用setAtrribute("value","xxx")的方式适用于字符串类型的属性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部