我不能从函数返回值。没有什么花哨或复杂的。我只需要遍历我的HTMLElements
并返回我需要的那个。
这是我第一次想到它,我花了很多时间修改代码并尝试以不同的方式返回它,或者至少理解它不起作用的原因。
我将不胜感激任何帮助和您的理解。
下面的代码片段包括我从使用RXjs - fromEvent
调用的事件侦听器调用的函数
我相信代码本身非常明确,但如果您需要更多信息,我将包含我的整个代码。
function findElementByDataValue(target: EventTarget, data: {key: string, value: string}){
// trying to return by a function
function send(element) {
return element;
}
if(target && target.dataset){
if(target.dataset[data.key] === data.value) {
// console.log(target);
// send(target);
return target;
} else {
if(target.children){
for (const child in Object.entries(target.children)) {
const element = target.children[child];
findElementByDataValue(element, data);
}
}
}
}
}
这是StackBlitz上的完整代码
*Invoking the function on line:*
65*Function on line:*
34
如果找到某些内容,则返回findElementByDataValue
调用,否则在else
中,递归调用不会执行任何操作:
function findElementByDataValue(target: EventTarget, data: {key: string, value: string}){
// trying to return by a function
function send(element) {
return element;
}
if(target && target.dataset){
if(target.dataset[data.key] === data.value) {
// console.log(target);
// send(target);
return target;
} else {
if(target.children){
for (const child in Object.entries(target.children)) {
const element = target.children[child];
const result = findElementByDataValue(element, data);
if (result) {
return result;
}
}
}
}
}
}