我在这里稍微修改了代码 https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_getelementsbyname_loop
发件人:
<!DOCTYPE html>
<html>
<body>
Cats: <input name="animal" type="checkbox" value="Cats">
Dogs: <input name="animal" type="checkbox" value="Dogs">
<p>Click the button to check all checkboxes that have a name attribute with the value "animal".</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var x = document.getElementsByName("animal");
var i;
for (i = 0; i < x.length; i++) {
if (x[i].type == "checkbox") {
x[i].checked = true;
}
}
}
</script>
</body>
</html>
收件人: 即我想更改value属性的值。
for (i = 0; i < x.length; i++) {
if (x[i].type == "checkbox") {
x[i].setAttribute("value", "camels");
}
}
它什么也没变,但是我在做什么错了?
编辑:要求是更改DOM中的属性,而不是HTML。
答案 0 :(得分:4)
Looks to be doing what is expected。 value
属性的每个复选框都会变为骆驼。
如果您要更改的是复选框旁边的TEXT,则需要将其包装在自己的元素中(可能是p
),然后将text
更改为驼色。更改value
仅会更改该复选框所对应的实际数据值。
答案 1 :(得分:2)
我认为它正在做您想要的事情,您只是看不到它。您正在更改输入的值,而不是实际的文本“ Dogs:”,因此最终得到的是:
Cats: <input name="animal" type="checkbox" value="camels">
Dogs: <input name="animal" type="checkbox" value="camels">