尝试使用textContent来解决HTML错误。 “无法设置未定义的属性'textContent'”

时间:2012-12-24 14:53:25

标签: javascript windows-8 windows-applications

认为我错过了一些明显的流血事件,并希望得到任何帮助。提前致谢。

我有以下代码但是当我运行它时断言并说.textContent不能应用于queryString,因为queryString未定义。

然而,让我失望的是,如果我在此行之前破坏代码并查看queryString,它将存储正确的值".titlearea .pagetitle"。为什么这不会在后续行中翻译?

JSON对象被转换为一个对象,该对象返回我想要使用的两个属性。名为termName的属性和另一个名为definition的属性。我想用这些参数的值替换两个HTML元素的textContent。

我已将termNamedefiniton的值存储在名为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);

1 个答案:

答案 0 :(得分:1)

您将此标记为Windows 8,因此我假设您正在使用某种形式的Internet Explorer。问题是,某些版本的IE不支持querySelectorquerySelectorAll。我想这是你的问题。尝试记录这两种方法并查看它的内容。如果它返回undefined,则该浏览器中没有针对这些方法的本机支持。


所以事实证明这是因为你在使用<=作为循环终止条件的一部分而不是我之前指出的<时进行循环,但不确定这是导致问题。很高兴我无论如何都可以提供帮助。