0

エラーが発生しましたが、解決方法がわかりません。助けてください :) コード:

var ls_contextid1=JSON.parse(localStorage.getItem('completedArray')) || [];
      for (var i = 0; i < ls_contextid1.length; i++){
        var obj = ls_contextid1[i];
        for (var key in obj){
          var value = obj[key];
          var checkbox=document.getElementsByName(value);
          doc[i] =value;

          var att = document.createAttribute('checked');      
          att.value = 'checked';   

        checkbox.setAttributeNode(att);

        }
      }

}

これはエラーメッセージです:

Uncaught TypeError: checkbox.setAttributeNode is not a function

ローカル ストレージには json が含まれます。

[{"contextid":"470"},{"contextid":"468"},{"contextid":"467"},{"contextid":"463"},{"contextid":"463"},{"contextid":"464"}]

そしてHTMLコード:

<input name="470" type="checkbox" disabled="disabled" style="margin-left:50px;">

手伝って頂けますか?

4

3 に答える 3

3

getElementsByName()は、ドキュメント内の特定の名前を持つノードリスト コレクションを返します。したがって、次のようにして、最初の要素にアクセスする必要があります

checkbox[0].setAttributeNode(att);
于 2016-11-17T10:45:26.780 に答える
3

document.getElementsByName(value);単一のノードではなく、ノードリストを返します。リストをループして、リストsetAttributeNode()内の各ノードで使用する必要があります。

于 2016-11-17T10:45:51.297 に答える
2

getElementsByNameはコレクションを返すので、使用する必要がありますcheckbox[0].setAttributeNode(att);。また、属性を設定する前に要素の存在を確認することをお勧めします。

于 2016-11-17T10:45:50.413 に答える