美文网首页
关于数组中的某元素的修改

关于数组中的某元素的修改

作者: 李寻欢_ | 来源:发表于2020-03-20 19:02 被阅读0次
    问题场景:

    目的是想在输入框获得焦点时,底框颜色变蓝色。

    data() {
        signForm: {
           mobile: "",
           password: "",
        },
        pwdAgain: "",
        isblurArr: [-1,-1,-1]
    }
    
    // html: 
    <p>手机号</p >
          <div class="ipt" :style="{borderColor:isblurArr[0]==0?'#3399ff':'#bfbfbf'}">
            <input
              type="text"
              placeholder="请输入联系方式"
              v-model="signForm.mobile"
              @focus="isblurArr[0]=0"
              @blur="isblurArr[0]=-1;"
            />
          </div>
          <p>密码</p >
          <div class="userNames ipt" :style="{borderColor:isblurArr[1]==0?'#3399ff':'#bfbfbf'}">
            <input
              type="text"
              placeholder="登录密码"
              v-model="signForm.password"
              @focus="isblurArr[1]=0"
              @blur="isblurArr[1]=-1;"
            />
          </div>
         <p>确认密码</p >
          <div class="userNames ipt" :style="{borderColor:isblurArr[3]==0?'#3399ff':'#bfbfbf'}">
            <input
              type="text"
              placeholder="再次输入密码"
              v-model="pwdAgain"
              @focus="isblurArr[3]=0"
              @blur="isblurArr[3]=-1;"
            />
          </div>
    

    上述代码 是想在输入框获得焦点时 响应的修改数组中对应元素的值 结果可想而知 没有生效
    后来查了查 发现修改数组的某个元素不能直接isblurArr[1]=0;这样赋值修改而是得使用splice()方法进行修改 如下:

    修改数组中某个元素的方法:
    let arrList= [-1,-1,-1,-1,-1]
    // 修改arrList数组中的2个元素为0:
    arrList.splice(1,1,"0"); // 从索引为1开始,往后数1个,并将其替代为0
    
    // 输出结果:
    arrList: [-1,0,-1,-1,-1]
    

    改成对象之后 就很香了:

    data() {
    isblurObj: {
            // 控制输入框底线颜色
            a: -1,
            b: -1,
            c: -1,
            d: -1,
            e: -1
          }
    }
    
    
    // html:
    <p>手机号</p >
          <div class="ipt" :style="{borderColor:isblurObj.a==0?'#3399ff':'#bfbfbf'}">
            <input
              type="text"
              placeholder="请输入联系方式"
              v-model="signForm.mobile"
              @focus="isblurObj.a=0"
              @blur="isblurObj.a=-1;"
            />
          </div>
          <p>密码</p >
          <div class="userNames ipt" :style="{borderColor:isblurObj.b==0?'#3399ff':'#bfbfbf'}">
            <input
              type="text"
              placeholder="登录密码"
              v-model="signForm.password"
              @focus="isblurObj.b=0"
              @blur="isblurObj.b=-1;"
            />
          </div>
    
    未获取焦点时.png 获取焦点后.png

    相关文章

      网友评论

          本文标题:关于数组中的某元素的修改

          本文链接:https://www.haomeiwen.com/subject/kyksyhtx.html