如何在 Limesurvey 中使用 Javascript 在第一个 table 行中插入文本

How do I insert text in first table row with Javascript in Limesurvey

我需要在 table 最左边的第一行中插入文本,它来自 Limesurvey 中的矩阵问题类型。

这原本不可能直接从管理面板进行。我想出了插入 javascript 代码。

检查 table,不幸的是,第一行既没有 class 也没有直接指向 select 的 ID。

这就是我如何设法在 <thead> 中获得第一个 <td>:

<script type="text/javascript" charset="utf-8">

    $(document).ready(function() {
      console.log("test");
        //Seleccionar la tabla correspondiente
        var t = document.querySelector('[aria-labelledby="ls-question-text-852216X2X7"]');
      d = t.getElementsByTagName("tr")[0],
      r = d.getElementsByTagName("td")[0];
      var td = $(t).find("thead td").eq(0).children().first();
      console.log(td);
      //td.innerHTML = "mytext";
    });
</script>

但是,我不知道如何在该单元格中插入文本。我试过 innerHTML() 功能,但它不起作用。

console.log(td) 的结果是以下对象:

Object { length: 0, prevObject: {…} }
​
length: 0
​
prevObject: Object { length: 0, prevObject: {…} }
​​
length: 0
​​
prevObject: Object { 0: td
, length: 1, prevObject: {…} }
​​​
0: <td class="">
​​​
length: 1
​​​
prevObject: Object { 0: td, length: 1, prevObject: {…} }

从该对象中,我看到了感兴趣的元素:0: <td class="">,那么我该如何插入所需的文本呢?

已解决

感谢@wazz 我可以解决它。

所以我select table:

var t = document.querySelector('[aria-labelledby="ls-question-text-852216X2X7"]');

然后我最后插入文本:

t.rows[0].cells[0].innerHTML = "text";

我不知道你的 table 上是否有 ID(我认为是 var t。)如果有,应该 很简单。这个有用吗?

document.getElementById("myTable").rows[0].cells[0].innerHTML = "text";

获取第一行的第一个单元格。如果有 table-header,它将获取 header 的第一个单元格(包括 header),因此请根据需要调整行。