在下面的代码中,当输入字符串是“tobacco”(没有引号)时,alert函数会以无限循环的方式触发。 “条款”派生自结果集(设置为50,以确保为关键字设置丰富的数据集)。但是,对于某些术语,返回的关键字数量太高了。
我可以在下面的脚本中为要设置的关键字数量设置最大值,然后在达到最大值后再继续?
jQuery.ajax({
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://boss.yahooapis.com/ysearch/web/v1/"
+jQuery('#my_keyword').val()+"?"
+"appid=myID"
+"&lang=en"
+"&format=json"
+"&count=50"
+"&view=keyterms"
+"&callback=?",
success: function(data)
{
var keywords = new Array();
jQuery.each(data['ysearchresponse']['resultset_web'],
function(i,item)
{
jQuery.each(item['keyterms']['terms'],
function(i,kw)
{
key = kw.toLowerCase();
alert(key);
答案 0 :(得分:0)
我不是100%确定我理解这个问题,但如果您只是想限制迭代的关键字数量,为什么不设置限制计数器呢?
jQuery.ajax({
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://boss.yahooapis.com/ysearch/web/v1/"
+jQuery('#my_keyword').val()+"?"
+"appid=myID"
+"&lang=en"
+"&format=json"
+"&count=50"
+"&view=keyterms"
+"&callback=?",
success: function(data)
{
var keywords = new Array();
var keywordsNumber = 0;
var keywordsMax = 20;
jQuery.each(data['ysearchresponse']['resultset_web'],
function(i,item)
{
if (keywordNumber == keywordsMax) { return false; } // Same as 'continue' in a regular loop
jQuery.each(item['keyterms']['terms'],
function(i,kw)
{
key = kw.toLowerCase();
keywordsNumber++;
alert(key);