获取表单内的全部没有被隐藏的name属性值并且不是”skus“开头和file的属性且不重复
时间: 2023-11-27 16:50:14 浏览: 63
可以使用以下 JavaScript 代码获取表单内的全部没有被隐藏的 name 属性值,并且不是 "skus" 开头和 "file" 的属性,且不重复:
```javascript
// 获取表单元素
const form = document.querySelector('form');
// 获取所有非隐藏的表单元素
const formElements = [...form.elements].filter(el => !el.hidden);
// 获取所有满足条件的 name 属性值
const names = formElements.reduce((acc, el) => {
const name = el.getAttribute('name');
if (name && !name.startsWith('skus') && name !== 'file') {
acc.add(name);
}
return acc;
}, new Set());
// 转换为数组并输出结果
const result = Array.from(names);
console.log(result);
```
这段代码首先获取表单元素,然后利用扩展运算符和 filter 方法获取所有非隐藏的表单元素。接着使用 reduce 方法遍历所有表单元素,对于每个满足条件的元素,将其 name 属性值添加到 Set 中去重。最后将 Set 转换为数组即可得到所有满足条件的 name 属性值。
相关问题
获取表单内的全部没有被隐藏的name属性值并且不是”skus“开头
可以使用 JavaScript 的 DOM 操作来实现。假设表单的 id 为 form,可以使用以下代码获取表单内的全部没有被隐藏的 name 属性值并且不是”skus“开头的元素:
```javascript
const form = document.getElementById('form');
const elements = form.querySelectorAll('[name]:not([name^="skus"]):not([type="hidden"])');
const names = Array.from(elements).map(el => el.getAttribute('name'));
console.log(names);
```
首先,使用 `document.getElementById` 方法获取表单元素。然后,使用 `querySelectorAll` 方法选择全部有 name 属性的元素,并且使用 `:not` 伪类过滤掉了 name 属性值以 "skus" 开头和 type 为 "hidden" 的元素。最后,使用 `getAttribute` 方法获取这些元素的 name 属性值,并返回一个数组。
注意,这段代码只能获取表单中已经加载到页面上的元素。如果表单中有动态添加的元素,需要在添加元素时重新执行这段代码来更新 name 属性值的数组。
js 判断字符串不是skus开头且不为空不是null
可以使用以下代码实现:
```javascript
if (str && str.trim() !== '' && !str.startsWith('skus')) {
// 字符串不为空且不是以'skus'开头
// 这里可以添加需要执行的代码逻辑
} else {
// 字符串为空、以'skus'开头或者为null
// 这里可以添加需要执行的代码逻辑
}
```
其中,`str`为待判断的字符串。首先使用`str`进行非空校验,然后使用`str.trim()`去除字符串两端的空格,再判断是否为空字符串。最后使用`str.startsWith('skus')`判断字符串是否以'skus'开头。如果满足条件,执行第一个代码块中的逻辑,否则执行第二个代码块中的逻辑。
阅读全文