const elements = form1.querySelectorAll('[name]:not([name^="skus"]):not([type="hidden"]:not([style*="display:none"])');报错grounding.js:447 Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Element': '[name]:not([name^="skus"]):not([type="hidden"]:not([style*="display:none"])' is not a valid selector.
时间: 2023-11-27 09:50:27 浏览: 33
这个错误的原因可能是因为该选择器语法错误。可以尝试将选择器拆分为单独的选择器并逐个调试,找出哪个选择器导致了错误。
例如,您可以将选择器改为以下形式,以便更好地调试:
```
const elements = form1.querySelectorAll('[name]:not([name^="skus"])');
```
如果没有错误,则可以将其他选择器添加回去,逐个调试,直到找出导致错误的选择器。
相关问题
<el-form-item label="单位" :label-width="formLabelWidth" prop="workunitid" 我需要实现滚动触底加载更多数据 > <el-select v-model="form.workunitid" placeholder="请选择单位"> <el-option v-for="item in unitOptions" :label="item.name" :value="item.id" :key="item.id" ></el-option> </el-select> </el-form-item>
你可以在`el-select`标签外层嵌套一个`el-scrollbar`组件,然后监听`scroll`事件,当滚动到底部时触发加载更多数据的函数。具体实现方式如下:
```html
<el-form-item label="单位" :label-width="formLabelWidth" prop="workunitid">
<el-scrollbar style="max-height: 200px; overflow: auto" @scroll.native="loadMore">
<el-select v-model="form.workunitid" placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-scrollbar>
</el-form-item>
```
其中,`loadMore`方法是用来加载更多数据的函数,你可以根据实际情况进行实现。在该方法中,你可以判断滚动条是否已经滚动到底部,如果滚动到底部则触发加载更多数据的逻辑。具体实现方式如下:
```js
methods: {
loadMore() {
const el = this.$el.querySelector('.el-scrollbar__wrap');
const isBottom = el.scrollHeight - el.scrollTop === el.clientHeight;
if (isBottom) {
// 触发加载更多数据的逻辑
// ...
}
},
},
```
const isExist = acc.find(item => item.id === cur.id); ^ TypeError: acc.find is not a function、
如果出现 `TypeError: acc.find is not a function` 的错误,那么很有可能是因为 `acc` 不是一个数组。请确保你传入的参数 `arr` 是一个数组类型,例如:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 2, name: 'Eve' },
];
const uniqueArr = arr.reduce((acc, cur) => {
const isExist = acc.find(item => item.id === cur.id);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
如果你传入的是一个不是数组的类型,那么可以通过将其转换为数组来解决这个问题,例如:
```javascript
const arr = '1,2,3,4,5';
const uniqueArr = Array.from(arr.split(',')).reduce((acc, cur) => {
const isExist = acc.find(item => item === cur);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
在这个例子中,我们首先使用 `split` 方法将字符串转换为数组,通过 `Array.from` 方法将其转换为真正的数组类型。然后执行去重操作,最后输出结果。