12345678910111213141516171819202122232425262728293031 |
- export default class ElementClass {
- constructor (el) {
- this.el = this.queryLabel(el)
- }
- // 底版本未暴露slots里的$el, 所以通过获取label的形式
- queryLabel (el) {
- return [...el.querySelectorAll('label') ?? []]
- }
- // 根据name获取需要定位的item
- getItemByName = (name) => {
- return this.el.reduce((el, currentEl) => {
- const prop = currentEl.getAttribute('for')
- if (prop === name) {
- el = currentEl.parentNode
- }
- return el
- }, null)
- }
- // 获取第一条错误项
- getFirstErrorItem = () => {
- let target = null
- for (let i = 0, len = this.el.length;i<len;i++) {
- const node = this.el[i].parentNode
- if (node.classList.contains('is-error')) {
- target = node
- break
- }
- }
- return target
- }
- }
|