认为我错过了一些明显的流血事件,并希望得到任何帮助。提前致谢。
我有以下代码但是当我运行它时断言并说.textContent不能应用于queryString,因为queryString未定义。
然而,让我失望的是,如果我在此行之前破坏代码并查看queryString,它将存储正确的值".titlearea .pagetitle"
。为什么这不会在后续行中翻译?
JSON对象被转换为一个对象,该对象返回我想要使用的两个属性。名为termName
的属性和另一个名为definition
的属性。我想用这些参数的值替换两个HTML元素的textContent。
我已将termName
和definiton
的值存储在名为content
的数组中。我在for...in
循环中执行此操作。
然后,我想循环遍历此数组,并使用content
数组中的相关值替换相关的HTML元素。这是第二个for
循环。
我基本上希望将该行解释为:
document.querySelector(“。titlearea .pagetitle”)。textContent = xxxx;
其中xxxx是queryResult[i]
值。
这是完整的代码。
var searchTerm = JSON.parse(Result.responseText);
var DefDiv = ".titlearea .pagetitle";
var DescDiv = ".titlearea .pagesubtitle";
var holder = [DefDiv, DescDiv];
var content = [];
var x;
// Push the query into an array
for (x in searchTerm.terms[0].term) {
content.push(x);
}
var displayResult = function(queryResult) {
for (var i = 0; i <= holder.length; i++) {
var queryString = holder[i];
document.querySelector(queryString).textContent = queryResult[i];
}
};
displayResult(content);
答案 0 :(得分:1)
您将此标记为Windows 8,因此我假设您正在使用某种形式的Internet Explorer。问题是,某些版本的IE不支持 querySelector
或querySelectorAll
。我想这是你的问题。尝试记录这两种方法并查看它的内容。如果它返回undefined
,则该浏览器中没有针对这些方法的本机支持。
所以事实证明这是因为你在使用<=
作为循环终止条件的一部分而不是我之前指出的<
时进行循环,但不确定这是导致问题。很高兴我无论如何都可以提供帮助。