JavaScript:setAttribute函数失败

时间:2018-11-28 21:29:43

标签: javascript

我在这里稍微修改了代码 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。

enter image description here

2 个答案:

答案 0 :(得分:4)

Looks to be doing what is expectedvalue属性的每个复选框都会变为骆驼。

如果您要更改的是复选框旁边的TEXT,则需要将其包装在自己的元素中(可能是p),然后将text更改为驼色。更改value仅会更改该复选框所对应的实际数据值。

答案 1 :(得分:2)

我认为它正在做您想要的事情,您只是看不到它。您正在更改输入的值,而不是实际的文本“ Dogs:”,因此最终得到的是:

Cats:  <input name="animal" type="checkbox" value="camels">
Dogs:  <input name="animal" type="checkbox" value="camels">