无法将属性'nodeValue'设置为null,需要解释

时间:2017-11-30 15:32:29

标签: javascript pug

我知道这已经被问到了,我确实搜索过但找不到类似的案例,所以我决定再次提出这个问题。

有谁可以告诉我这里的问题是什么,因为前两个Axis-X和Axis-Y工作完美但是Axis-Z给了我

  

“无法设置属性'nodeValue'为null”

我网站上的错误。
我面临的确切问题是前两个,Axis-X和Axis-Y确实传递了值而没有问题,只有Axis-Z给出了上面的错误,我的问题是,为什么它会给我这个错误,以及为什么只有这一个而不是全部3个。 需要注意的是,Axis-Z if语句中的msg.payload确实带有了它所假设的值。

这是Javascript:

 if (index.contains('Gyroscope')) { //Get all data from Gyroscope queue

    if((index.indexOf('Axis-X')) >= 0){//X-Axis queue  && 'X-Axis'
      // var sendData1 = msg.payload;
      // printText("gyrX", sendData1); //Publish data to the textArea
      // //console.log("I send Axis-X");
      document.getElementById('gyrX').firstChild.nodeValue = msg.payload;
    };

    if((index.indexOf('Axis-Y')) >= 0){
      // var sendData1 = msg.payload;
      // printText("gyrY", sendData1); //Publish data to the textArea
      // //console.log("I send Axis-Y");
      document.getElementById('gyrY').firstChild.nodeValue = msg.payload;
    };

    if((index.indexOf('Axis-Z')) >= 0){
      //var sendData1 = msg.payload;
      //printText("gyrZ", msg.payload); //Publish data to the textArea
      console.log("I send Axis-Z" + msg.payload);
      document.getElementById('gyrZ').firstChild.nodeValue = msg.payload;
    };
  };

这是玉:

  main.hoc.container.clear(styles='width:100%;')
    .sidebar.four_quarter.first(styles='width:30%;')
      table
        tr
          th(colspan='4')  Gyroscope Readings
        tr
          td(style='width:50%;') Gyroscope X:
          td(style='width:50%;')
            span#gyrX  
        tr
          td(style='width:50%;') Gyroscope Y:
          td(style='width:50%;')
            span#gyrY  
        tr
          td(style='width:50%;') Gyroscope Z:
          td(style='width:50%;')
            span#gyrZ
      p
        | Note: Sensor accuracy at current configuration can have a difference of 5 degree, calibration is needed.
      p
        | Note: Sensor takes the angle it was turned on at as 0 degree, make sure that everything is leveled before turning system on.
      br

我在来到这里之前简化了代码,这就是为什么很多人被注释掉了。也有人能解释一下,为什么会这样?

1 个答案:

答案 0 :(得分:1)

您的Jade定义了许多没有内容的span元素。

您的JavaScript尝试访问这些跨度的firstChild(期望在那里找到文本节点)并且失败,因为没有内容,因此没有文本节点。

设置跨度的the textContent,而不是第一个孩子的nodeValue