在下面的代码中,当输入字符串是“烟草”(不带引号)时,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);发布于 2010-11-12 02:49:40
我不是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);https://stackoverflow.com/questions/4157629
复制相似问题