【发布时间】:2016-03-15 19:34:18
【问题描述】:
我正在尝试检查名为 test[] 的数组的值 "Dep_" 并将其值添加到另一个数组 arrayDep。
它失败了,因为它说该位置的数组是undefined,但在控制台日志中可能会看到数组中满是项目。
代码:
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]);
}
}
}
});
【问题讨论】:
-
如果您的一个或多个
<a>元素没有“href”属性,那么您将在数组的某些元素中包含undefined。 -
@Pointy 但它们不会出现在
console.log(test);之后的日志中吗? -
@Pointy 我的数组中只有href itens 我只推送hrefs:test.push($(this).attr('href'));
-
设置断点并单步执行代码,而不是使用
console.log。我有时观察到console.log记录的值不准确。 -
我在我的数组中发现 undefined !!可能很好,我会尽量避免它
标签: javascript arrays substring jsdom