我将一些旧的VBScript转换为Javascript有两行,我不知道如何正确转换。这是最初的VBS:
function getCount()
on error resume next
dim allitems, strItemID, icnt
icnt = 0
set allitems = dsoITEMS.selectNodes("//item")
for each node in allitems
strItemID = node.selectsinglenode("item_id").firstchild.nodevalue
if err then
exit for
end if
if strItemID <> "" then
icnt = icnt + 1
end if
next
set nodes = nothing
getCount = icnt
end function
这是我到目前为止的js:
function getCount(){
on error resume next;
var allitems, strItemID, icnt;
icnt = 0;
allitems = dsoITEMS.selectNodes("//item");
for each node in allitems;
strItemID = node.selectsinglenode("item_id").firstchild.nodevalue;
if(err){
exit for;
}
if(strItemID != ""){
icnt = icnt + 1;
}
next;
nodes = null;
getCount = icnt ;
}
我无法弄清楚如何转换的行是&#34;接下来的错误恢复&#34;和#34;对于所有项目中的每个节点&#34;
答案 0 :(得分:0)
以下是将您的VBS代码转换为JavaScript: 使用try {} catch {}来捕获错误。 在遍历项集合时,您可以使用for循环进行迭代,如下所示,并使用索引属性访问项目。 你还需要使用&#34; return&#34;从函数返回值时的关键字。
function getCount() {
var allitems, strItemID, icnt;
icnt = 0;
try {
allitems = dsoITEMS.selectNodes("//item");
for(var i = 0; i<= allitems.length; i++){
var node = allitems[i];
strItemID = node.selectsinglenode("item_id").firstchild.nodevalue;
if (strItemID !== ""){
icnt = icnt + 1;
}
}
}
catch (ex){
//Do something with the errors (if you want)
}
return icnt;
}