【问题标题】:How to retrieve the "element's id" of the previous element to become the "innerText" of the current element by startup/onLoad?如何通过startup/onLoad检索前一个元素的“元素的id”成为当前元素的“innerText”?
【发布时间】:2021-01-10 00:52:29
【问题描述】:

想通过startup/onLoad将前一个元素的“元素的id”变成当前元素的“innerText”。我不知道。关键是它必须从我单击打开弹出窗口时开始加载或启动。不要问为什么,但条件迫使我实现这一目标。看,我会尽可能清楚地描述这一点,希望您能轻松理解。

首先我在 .gs 文件 (GAS) 中创建某行的代码。路径是这样的:

======================== gs文件上的客户端服务器 ========== ==============

.....
var s = SpreadsheetApp,
    ss = s.getActiveSpreadsheet(),
    sss = ss.getSheets();
.....
  for (var i=0, iLen=sss.length; i<iLen; i++) {
    result += "<tr>";
    result += "<td id='"+sss[i].getName().replace(/\(/g,'<').replace(/\)/g,'>')+"'></td>";
    result += "<td contentEditable='true' onLoad='this.innerText=this.previousElementSibling.id'></td>";
    result += "<td>X</td>";
    result += "</tr>";
.....

现在我的意思是“onLoad='this.innerText=this.previousElementSibling.id'”的路径。它不起作用。我该怎么办?因为如果我把这样的代码 "...>"+sss[i].getName().replace(/(/g,'')+"" 那里会有bug。 我也附上图片以提供更多解释。请为我减轻一些负担,任何帮助将不胜感激,抱歉我的打字(英文)不好。

【问题讨论】:

  • 抱歉,第一列和第三列已经被 CSS 行隐藏了,所以这只是我要简短描述的示例的路径。在我添加工作表的循环名称然后不会完全显示每个工作表的名称后,问题总是会出现,这就是我想用另一种方式创建它的原因。谁能说出为什么以及如何解决这个问题?
  • 不,我很抱歉,因为我的英语也是。好吧,我正在尝试回答他们。 1.我想在弹出窗口打开时显示工作表加载的名称。 2. 它不起作用,因为它仍然什么也没有发生。没有结果。它的空白名称出来了(零表示什么都没有)。 3. 如果我将成就的不同代码放在 "+sss[i].getName().replace(/(/g,' ')+" 看看我附上的照片。
  • 感谢您的快速回复。从您的回复中,我了解到您想要检索工作表名称并将它们放在电子表格对话框上的 HTML 表格中。我的理解正确吗?如果我的理解是正确的,关于工作表名称,您是否要给出限制?
  • 是的,你是正确的@Tanaike。很高兴听到你已经理解它。是的,我想通过用小于号“”替换括号(“(”和“)”)来给出一些规则或模式。
  • 感谢您的回复。我不得不再次为我糟糕的英语水平道歉。不幸的是,我无法理解您的回复。我现在有3个问题。 1.从你的示例图片中,关于(DBS),你想做什么? 2. 关于And Yes I want to give some rules or pattern by replacement of bracket("(" and ")") by less then sign "&lt;" and greater then sign "&gt;".., can I ask you about the detail of it? 3. X`是path of name?如果是这样,我可以问你path of name吗?

标签: javascript html dom google-apps-script google-sheets


【解决方案1】:

很抱歉,我花了这么长时间才自己解决了这个问题。我不能在元素上使用 onload 属性。但是,我使用 window.onload 并将此代码直接放入脚本的标签而不是它,它工作得非常好,一切都很好,因为所有名称都已按我的预期成功。请参阅下面我的期望输出:

================================ 代码是:======== =====================

.....
var s = SpreadsheetApp,
    ss = s.getActiveSpreadsheet(),
    sss = ss.getSheets(),
    result = "<head><script type='text/javascript'>function swapNme() {",
    result += "var trs = document.querySelectorAll('tr');",
    result += "  for (var i=0, iLen=trs.length; i<iLen; i++) {",
    result += "    trs[i].children[1].innerText = trs[i].children[0].id;",
    result += "   };",
    result += " };",
    result += "window.onload=swapNme;",
.....
    result += "</script></head><table>";
.....
  for (var i=0, iLen=sss.length; i<iLen; i++) {
var result += "<tr>";
    result += "<td id='"+sss[i].getName().replace(/\(/g,'<').replace(/\)/g,'>')+"' class='hidden'></td>";
    result += "<td contentEditable='true'></td>";
    result += "<td class='hidden'>X</td>";
    result += "</tr>";
.....

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多