无法设置属性'innerHTML'在javascript中为null

Cannot set property 'innerHTML' of null in javascript

本文关键字:javascript 中为 null innerHTML 设置 属性      更新时间:2023-09-26

伙计们,我有一个包含文本和按钮的列,我想要的是当点击按钮时,文本发生了变化。。这是我的代码

var count = 0;
$(document).ready(function() {
      $("#jqGrid").jqGrid({
        data: data.rows,
        datatype: "local",
        styleUI: "Bootstrap",
        colModel: [
          {
            label: 'Customer ID',
            name: 'CustomerID',
            width: 180,
            editable: true,
            edittype: "custom",
            id: "CustomerID",
            editoptions: {
              custom_element: function(value, options) {
                var parts = value.split(' ');
                var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] +
                  '" /><input type="button" size="5" value="..." onclick="setText();"/></div>';
                count++;
                // return DOM element from jQuery object
                return $(elemStr)[0];
              },
              custom_value: function(elem) {
                var inputs = $("input", $(elem)[0]);
                var first = inputs[0].value;
                return first;
              }
            }
          },
        ],
      });
     });
      function setText() {
        document.getElementById("txt_" + count).innerHTML = "hey";
      }

那为什么它给了我这个例外。。plz帮助。。顺便说一句,我是的初学者

setText中的计数未定义。

第一次更改按钮的点击功能以通过计数变量

 var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] +
                  '" /><input type="button" size="5" value="..." onclick="setText(' + count + ');"/></div>';

然后接受计数作为参数

function setText(count) {
        document.getElementById("txt_" + count).innerHTML = "hey";
      }

您可以将count传递给函数:

var count = 0;
$(document).ready(function() {
      $("#jqGrid").jqGrid({
        data: data.rows,
        datatype: "local",
        styleUI: "Bootstrap",
        colModel: [
          {
            label: 'Customer ID',
            name: 'CustomerID',
            width: 180,
            editable: true,
            edittype: "custom",
            id: "CustomerID",
            editoptions: {
              custom_element: function(value, options) {
                var parts = value.split(' ');
                var elemStr = '<div><input size="6" id="txt_"' + count + '" value="' + parts[0] +
                  '" /><input type="button" size="5" value="..." onclick="setText(' + count + ');"/></div>';
                count++;
                // return DOM element from jQuery object
                return $(elemStr)[0];
              },
              custom_value: function(elem) {
                var inputs = $("input", $(elem)[0]);
                var first = inputs[0].value;
                return first;
              }
            }
          },
        ],
      });
     });
      function setText(count) {
        document.getElementById("txt_" + count).innerHTML = "hey";
      }