Javascript 尝试使用.substring()时未定义的值
我试图检查名为Javascript 尝试使用.substring()时未定义的值,javascript,arrays,substring,jsdom,Javascript,Arrays,Substring,Jsdom,我试图检查名为test[]的数组中的值“Dep”,并将其值添加到另一个数组arrayDep 它之所以失败,是因为它说该位置的数组未定义,但在控制台日志中可以看到数组中充满了项 代码: jsdom.env({ url:“http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=n
test[]
的数组中的值“Dep”
,并将其值添加到另一个数组arrayDep
它之所以失败,是因为它说该位置的数组未定义
,但在控制台日志中可以看到数组中充满了项
代码:
jsdom.env({
url:“http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=nome&origem=None",
脚本:[”http://code.jquery.com/jquery.js"],
完成:函数(错误,窗口){
var检验=[];
var arrayDep=[];
var值;
var substring=“Dep_Detalhe.asp”;
var$=窗口。$;
$('a')。每个(函数(){
test.push($(this.attr('href'));
});
控制台日志(测试);
//内部控制台日志:
//“Dep_Detalhe.asp?id=5830400”,
//“mailto:dep。givaldocarimbao@camara.leg.br',
//“Dep_Detalhe.asp?id=5830706”,
//“mailto:dep。givaldovieira@camara.leg.br',
//“Dep_Detalhe.asp?id=5830397”,
//“mailto:dep。glauberbraga@camara.leg.br', ...
对于(变量i=0;i
这很管用,伙计们,感谢大家,我的数组中有未定义的组件,但最好的提示是使用节点检查器,这样可以很容易地验证我的大数组中是否有未定义的组件。如果一个或多个
元素没有“href”属性,在数组的某些元素中将有未定义的。@Pointy,但它们不会出现在console.log(test)之后的日志中
?@Pointy我的数组中只有href itens,我只推hrefs:test.push($(this.attr('href'));设置断点并单步执行代码,而不是使用console.log
。我有时观察到console.log
记录了不准确的值。我发现我的数组中没有定义!!很可能是这样,我会尽量避免的
jsdom.env({
url: "http://www.camara.leg.br/internet/deputado/Dep_Lista.asp?Legislatura=55&Partido=QQ&SX=QQ&Todos=None&UF=QQ&condic=QQ&forma=lista&nome=&ordem=nome&origem=None",
scripts: ["http://code.jquery.com/jquery.js"],
done: function (errors, window) {
var test = [];
var arrayDep = [];
var value;
var substring = "Dep_Detalhe.asp";
var $ = window.$;
$('a').each(function () {
test.push($(this).attr('href'));
});
console.log(test);
// inside console log:
// 'Dep_Detalhe.asp?id=5830400',
// 'mailto:dep.givaldocarimbao@camara.leg.br',
// 'Dep_Detalhe.asp?id=5830706',
// 'mailto:dep.givaldovieira@camara.leg.br',
// 'Dep_Detalhe.asp?id=5830397',
// 'mailto:dep.glauberbraga@camara.leg.br', ...
for (var i = 0; i < test.length; i++) {
value = test[i];
if (value.substring(0,3) === "Dep_") {
// error occurs here it says:
// TypeError: Cannot read property 'substring' of undefined
arrayDep.push(test[i]);
}
}
}
});