无法设置元素的innerHTML

时间:2017-03-03 21:18:48

标签: javascript

我已经建立了搜索功能来查找结果。但是,它有两个问题。第一个问题是变量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;

2 个答案:

答案 0 :(得分:3)

您的div包含 searchPane,但您正在寻找具有 ID 的元素,因此名称为getElementById

答案 1 :(得分:1)

至于你的第二个问题,你应该将你的resShow变量初始化为空字符串:

var resShow = "";

这样它在for循环开始时没有未定义的值,并强制对未定义的值进行字符串转换。