通过 tabletop.js 打印出值

Print out values via tabletop.js

我正在通过 tabletop.js 加载一个 google 电子表格,当用户输入书名时,脚本应该会打印出这本书的作者。因此,如果您输入 "Kindred",它应该是 return "Octavia Butler"。 我不知道如何通过传递标题来访问作者。

https://codepen.io/scibe90/pen/zYvYgZz

这是电子表格:

https://docs.google.com/spreadsheets/d/1sbyMINQHPsJctjAtMW0lCfLrcpMqoGMOJj6AN-sNQrc/pubhtml

我对编码很陌生,所以也许有人可以给我提示? 非常感谢!

祝福

不是真正的数据表问题,但很有趣,我很无聊;-)

您发布的 URL 是正确的,您在 CodePen 中将其注释掉了,我没有使用它,所以我在 JSFiddle here 上发布了更正后的版本。您快到了,但您需要检查您正在尝试的搜索功能,该功能适用​​于数据类型,但不适用于您正在使用的数据类型。您需要在对象中搜索 return 一个值,然后 return 一个与找到的对象不同的值。

加载 DOM 时,您还有两个方法会启动一次,所以我删除了一个。

var publicSpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/1sbyMINQHPsJctjAtMW0lCfLrcpMqoGMOJj6AN-sNQrc/pubhtml';

function showInfo(data, tabletop) {
  dt = data;
}
var dt;
$(document).ready(function() {
  Tabletop.init({
    key: publicSpreadsheetUrl,
    callback: showInfo,
    simpleSheet: true
  });
  $("#buttonShow").click(function() {
    var num = $("#txtBox").val();
    $("#result").html(
      "You typed:" + $("#txtBox").val() + "<br/>" + "The corresponding value is: " + dt.find(el => el.title.toLowerCase().trim() === num.trim().toLowerCase()).author
    );
  });
});

还有很多其他可以改进的地方,但这行得通!希望对大家有所帮助,祝你好运!