在javascript函数中返回DOM

在javascript函数中返回DOM,javascript,jquery,dom,Javascript,Jquery,Dom,我试图编写一个javascript函数来解析DOM树的一部分,并返回其中的一部分进行进一步解析。尽管单步执行函数似乎工作正常,但函数的返回在调用语句中显示为未定义。有办法解决这个问题吗 from = entityfromid($(value)[0].getElementsByTagName("O1")[0].childNodes[0].childNodes[0].nodeValue).getElementsByTagName("Name")[0].childNodes[0].nodeValue;

我试图编写一个javascript函数来解析DOM树的一部分,并返回其中的一部分进行进一步解析。尽管单步执行函数似乎工作正常,但函数的返回在调用语句中显示为未定义。有办法解决这个问题吗

from = entityfromid($(value)[0].getElementsByTagName("O1")[0].childNodes[0].childNodes[0].nodeValue).getElementsByTagName("Name")[0].childNodes[0].nodeValue;

function entityfromid(id) {
$($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) {
    if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) {
        return value;
    }
});
}

您需要从
.each()
中提取
return
语句,而不是从
entityfromid
函数返回

function entityfromid(id) {

    var ret_value;

    $($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) {
        if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) {
            ret_value = value;
            return false;
        }
    });
    return ret_value;
}
在这里,当找到结果时,它将设置
ret_value
变量的值,并执行
返回false
,从而打破循环


然后
ret\u值
用于函数中的
返回

您需要从
.each()
中提取
返回
语句,而不是从
entityfromid
函数中返回

function entityfromid(id) {

    var ret_value;

    $($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) {
        if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) {
            ret_value = value;
            return false;
        }
    });
    return ret_value;
}
在这里,当找到结果时,它将设置
ret_value
变量的值,并执行
返回false
,从而打破循环


然后
ret\u值
用于函数的
返回

请发布您的实际代码。请发布您的实际代码。谢谢!没想到从那里返回会导致它不能正确地从函数返回。谢谢!没有料到从那里返回会导致它不能正确地从函数返回。
function entityfromid(id) {

    var ret_value;

    $($(xmlDoc)[0].getElementsByTagName("Entities")[0].childNodes).each(function (index, value) {
        if(value.getElementsByTagName('Id')[0].childNodes[0].nodeValue == id) {
            ret_value = value;
            return false;
        }
    });
    return ret_value;
}