首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue.js无法正确地从$refs获得某些元素属性

Vue.js无法正确地从$refs获得某些元素属性
EN

Stack Overflow用户
提问于 2017-09-20 15:23:52
回答 1查看 2.2K关注 0票数 1

我无法从$refs获得正确的属性,反馈欢迎.

Vue模板

代码语言:javascript
复制
    <input name="title" ref="inputTitle" data-vv-delay="1000" v-validate.initial="'required|min:3'" :class="{'input': true, 'is-danger': errors.has('required') }" :value="title" @input="validating({ title: $event.target.value, id: id })"/>

控制台输出

代码语言:javascript
复制
    console.log('REFS: ', this.$refs.inputTitle)
    REFS:
    <input data-v-44a1f54e name="title" data-vv-delay="1000" class="input" data-vv-id="_o6kpv3eo7" aria-required="true" aria-invalid="false">

    console.log('NAME: ', this.$refs.inputTitle.name)
    NAME:  title

,但我得到了错误:

代码语言:javascript
复制
    1 - property is not found however it exists...
    console.log('CLASS: ', this.$refs.inputTitle.class)
    CLASS:  undefined

    2- aria-invalid is checked as an infix-operator by Lint ...
    console.log('ARIA-INVALID: ', this.$refs.inputTitle.aria-invalid)
    http://eslint.org/docs/rules/space-infix-ops  Infix operators must be spaced
    http://eslint.org/docs/rules/no-undef         'invalid' is not defined
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-20 15:29:03

使用className而不是classclassName是javascript中的属性名。

this.$refs.inputTitle.aria-invalid无效的javascript。实际上,它是一个表达式,试图从invalid中减去值this.$refs.inputTitle.aria。要获得aria属性,请使用:

代码语言:javascript
复制
this.$refs.inputTitle.getAttribute("aria-invalid")

下面是一个例子。

代码语言:javascript
复制
console.clear()

new Vue({
  el: "#app",
  mounted(){
    console.log(this.$refs.inputTitle.className)
    console.log(this.$refs.inputTitle.getAttribute("aria-invalid"))
  }
})
代码语言:javascript
复制
<script src="https://unpkg.com/vue@2.4.2"></script>
<div id="app">
  <div ref="inputTitle" class="test" aria-invalid="false">Hello World</div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46326047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档