gpt4 book ai didi

Javascript 函数无法返回元素

转载 作者:行者123 更新时间:2023-11-28 09:44:48 25 4
gpt4 key购买 nike

所以我正在使用 Handsontable目前项目的 jQuery 插件,我已经编写了一些自定义函数来使用它。

我目前遇到问题的函数是我编写的用于返回当前选定单元格的函数(当用户仅选择一个而不是多个时,并且是的,已检查)。

这是我的代码:

function getCurrentCell(){
var selection = $('div.current');
var left = selection.offset().left;
var right = left + selection.width();
var top = selection.offset().top;
var bottom = top + selection.height();
$('div.active').find('table').find('td').each(function(){
if($(this).offset().left >= left && $(this).offset().left <= right && $(this).offset().top >= top && $(this).offset().top <= bottom){
return this;
}
});
return false;
}

但是,每当我调用该函数时,例如:

var cell = getCurrentCell();

然后尝试alert(cell)console.log(cell),我得到一个false返回值。

我最初的想法是坐标会以某种方式关闭,因此找不到符合条件的元素,因此我尝试通过添加来检查...

$(this).css('background-color', 'black');

...就在 return this 行之前。这样,如果找到正确的表格单元格,它将在实际返回代码之前显示在屏幕上。有趣的是,正确的单元格总是正确更改其背景颜色。因此,这个函数正在寻找正确的单元格,并且它正在 if 循环中执行代码,但是当我尝试将返回值捕获到变量中时,该变量始终为 false。

任何帮助都会很棒!谢谢!

最佳答案

您正在使用.each()有一个函数

.each(function(){
...
return this;
});
return false;

这将从回调中返回(如果thisfalse,则可能停止每个循环),但永远不会突破并从外部getCurrentCell返回 功能!因此,该函数将始终返回 false

快速修复:

var result = false;
<...>.each(function(){
if (<condition>) {
result = <found element>;
return false; // break each-loop
}
});
return result; // still false if nothing found

关于Javascript 函数无法返回元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com