我试图在jquery中创建一个自动提示功能(只是实验性的jquery noob),我使用$(el).html函数来渲染出正在提供的数据:
$("#suggestions").addClass("active");
var words = $(this).val();
var results = searchData(questions,words);
$("#suggestions").html(function () {
_.each(results, function(q, key){
return "<p>" + q.question + "</p>"; // problem is here
});
});
完整的工作代码在这里:http://jsfiddle.net/HSBWt/6/ 我似乎不知道出了什么问题?
答案 0 :(得分:3)
问题在于each
功能中的html
声明。
We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.
reference
修复以下代码:
var suggestions;
_.each(results, function(q, key){
suggestions += "<p>" + q.question + "</p>";
});
return suggestions;
答案 1 :(得分:1)
使用map
函数返回对象数组
答案 2 :(得分:0)
来自_each
的结果未在html
中使用。您需要保存并返回结果字符串:
var results = [];
_.each(results, function(q, key){
console.log(q.question);
results.push("<p>" + q.question + "</p>");
});
return results.join('');