我有一个代码可以在chrome和mozzila中运行而没有任何错误,并且有一个IE 11可以实现此错误。这是代码:
var products;
function search()
{
var tag;
var flag = 0;
var searchword = document.getElementById("search-bar").value;
for(var i=0; i< products.length; i++)
{
tag = products[i].getElementsByTagName("itemnumber");
if( searchword.toUpperCase() == tag[0].innerHTML.toUpperCase() )
{
// do something
}
}
}
$(window).load(function() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "products.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
products = xmlDoc.getElementsByTagName("product");
}
});
这段代码给了我这个错误:
Unable to get property 'toUpperCase' of undefined or null reference
表示searchword
???
如果我要加上这个
if(products.length === 0)
{
// do something
}
就在function search();
它会在Invalid Calling Object
??
products.length
错误
为什么,为什么,我不明白......?
此外,当我在控制台中尝试alert(products.length);
时,会弹出Invalid Calling object
。
我真的不知道为什么会发生这种情况,因为它在chrome和mozzila中都运行良好。如果有人知道这是为什么以及如何解决,请回答。
P.S。此代码放在脚本标记的head中。按钮点击时搜索调用。