var form = document.getElementById("productForm"); var visibleFormElements = Array.prototype.slice.call( form.querySelectorAll( "input:not([type=hidden]), select, textarea, radio, checkbox" ) ).filter(function (element) { return element.offsetParent !== null; }); var names = visibleFormElements.map(function (element) { return element.getAttribute("name"); });获取不到单选框、复选框的name属性
时间: 2023-11-27 14:51:58 浏览: 53
单选框和复选框的name属性需要通过另外的方式获取。可以使用以下代码来获取单选框和复选框的name属性:
```
var radioCheckboxes = Array.prototype.slice.call( form.querySelectorAll( "input[type=radio], input[type=checkbox]" ) ).filter(function (element) { return element.offsetParent !== null; });
var names = visibleFormElements.map(function (element) { return element.getAttribute("name"); }).concat(radioCheckboxes.map(function (element) { return element.getAttribute("name"); }));
```
这样就可以获取到所有表单元素的name属性了。
相关问题
var form = document.getElementById("productForm"); var visibleFormElements = Array.prototype.slice.call( form.querySelectorAll( "input:not([type=hidden]), select, textarea, radio, checkbox" ) ).filter(function (element) { return element.offsetParent !== null; }); var names = visibleFormElements.map(function (element) { return element.getAttribute("name"); });获取不到单选框、复选框的那么属性
单选框和复选框的值需要通过 element.checked 属性进行获取,可以将代码修改为以下形式:
```
var form = document.getElementById("productForm");
var visibleFormElements = Array.prototype.slice.call(
form.querySelectorAll(
"input:not([type=hidden]), select, textarea, radio, checkbox"
)
).filter(function (element) {
return element.offsetParent !== null;
});
var names = visibleFormElements.map(function (element) {
if (element.type === "checkbox" || element.type === "radio") {
return element.checked ? element.getAttribute("name") : null;
}
return element.getAttribute("name");
}).filter(function (name) {
return name !== null;
});
```
这样可以正确获取单选框和复选框的 name 属性。
var txt=document.getElementById
`var txt=document.getElementById`是JavaScript中获取指定id的元素的方法。它返回一个表示该元素的对象,可以通过该对象来操作和修改该元素的属性和内容。
在给定的引用中,`document.getElementById`方法用于获取id为"username"的元素。根据引用中的描述,当执行到`var userElement = document.getElementById("username");`这行代码时,"username"元素还没有加载,因此`userElement`变量将会是`null`。
以下是一个示例,演示了如何使用`document.getElementById`方法获取元素并修改其内容:
```javascript
<!DOCTYPE html>
<html>
<body>
<h1 id="myHeading">Hello World!</h1>
<script>
var heading = document.getElementById("myHeading");
heading.innerHTML = "New Heading";
</script>
</body>
</html>
```
在上面的示例中,我们首先使用`document.getElementById`方法获取id为"myHeading"的元素,然后使用`innerHTML`属性将其内容修改为"New Heading"。
阅读全文