我已经建立了搜索功能来查找结果。但是,它有两个问题。第一个问题是变量let nums = {
One: 'One',
Two: 'Two',
Three: 'Three'
}
type keys = keyof typeof nums;
class myClass {
display: string;
constructor(display: keys) {
this.display = nums[display];
}
}
new myClass("One");
似乎没有持续存在。无论它看起来有什么属性,当我使用resShow
时,似乎总是会忘记"它的价值:
第二个问题是迭代我的结果数组似乎会创建一个" undefined"结果。这导致一个字符串以" undefined"开头。在预期结果之前,如下所示:
以下是来源:
getElementById
需要显示的HTML:
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var fixed = query.substring(query.indexOf("=")+1);
return fixed;
}
var searchvariable = getQueryVariable("terms");
var options = {
id: "displ",
shouldSort: true,
tokenize: true,
findAllMatches: true,
threshold: 0.6,
location: 0,
distance: 100,
maxPatternLength: 32,
minMatchCharLength: 1,
keys: [
"tags"
]
};
var fuse = new Fuse(list, options); // "list" is the item array
var result = fuse.search(searchvariable);
var resLength = result.length;
var resShow;
for (var i=0; i<resLength; i++) {
resShow += result[i] + "\n";
}
document.getElementById("searchPane").innerHTML = resShow;
答案 0 :(得分:3)
您的div包含类 searchPane
,但您正在寻找具有 ID 的元素,因此名称为getElementById
。
答案 1 :(得分:1)
至于你的第二个问题,你应该将你的resShow变量初始化为空字符串:
var resShow = "";
这样它在for循环开始时没有未定义的值,并强制对未定义的值进行字符串转换。