返回在jQuery中无法正常工作

时间:2014-10-26 21:08:30

标签: jquery function iterator return each

我有一堆ul个,每个ul包含一堆input个。{有问题的函数从“搜索框”中获取一个字符串,并尝试通过搜索所述ul中的每个input来查找每个ul中的字符串。没有搜索到的字符串的每个input都是FLAGGED。该函数计算FLAGGED input的数量,以及input中FLAGGED ul的数量是否等于input的总数ul ul,然后可以确定搜索到的字符串根本不存在于ul中,并且hide-this应该被赋予function findString(subject){ var increment = 0; //If string cannot be found, highlight input if ($(subject).val().indexOf("s") == -1){ $(subject).css("background-color", "#ff0000"); increment = 1; } console.log("Increment is " + increment + "!"); //Return value by which to increment error count (can be 1 or 0) return increment; } $(document).ready(function() { //When new term is entered into searchbox $('#query-input').bind('input', function(){ //For each UL in table $(".big-table ul:not(.big-table-headers)").each(function(i){ //Count total number of inputs in UL var inputCount = $(this).find("input").length; var errorCount = 0; console.log("input count is: " + inputCount); //Then for each input in UL, try to find string $(this).find("input").each(function(){ //Increment errorCount based on return value of findString() errorCount = errorCount + $(findString($(this))); }); console.log("errorCount is " + errorCount + "!"); /*If the number of inputs in the UL containing string is the same as the total number of inputs, then no inputs in the UL contain this string, and the entire ul should be hidden*/ if(errorCount == inputCount){ $(this).addClass("hide-this"); } }); }); }); 类。

findString()

input函数运行良好并确定每个没有字符串的findString(),但是当我尝试将该函数的数值(1或0)返回给main函数时,.each()代替返回一个对象,我当然不能在任何数学运算中使用它。我怀疑它与使用{{1}}迭代器有关,但我不确定。有没有人有任何想法?

注意我强制函数使用“s”字符串进行测试,因此它实际上并没有从搜索框中直接输入,但函数正在搜索框调用。

1 个答案:

答案 0 :(得分:0)

不要将呼叫包裹到jQuery arount findString。它应该是:

errorCount = errorCount + findString($(this));

您的代码正在尝试将jQuery对象添加到errorCount,而不是findString返回的数字。