0

我有以下代码来使用谷歌图片搜索 API:

google.load('search', '1');   
    function searchComplete(searcher) {
      // Check that we got results
      if (searcher.results && searcher.results.length > 0) {
        // Grab our content div, clear it.
        var contentDiv = document.getElementById('contentimg');
        contentDiv.innerHTML = '';

        // Loop through our results, printing them to the page.
        var results = searcher.results;
        for (var i = 1; i < results.length; i++) {
          // For each result write it's title and image to the screen
          var result = results[i];
          var imgContainer = document.createElement('div');



          var newImg = document.createElement('img');
          // There is also a result.url property which has the escaped version
          newImg.src = result.tbUrl;


          imgContainer.appendChild(newImg);

          // Put our title + image in the content
          contentDiv.appendChild(imgContainer);

问题是,它给了我 3 个图像结果。如何打破循环并仅显示第一个而不是 3 个图像?如果我for (var i = 1; i < results.length; i++)改为for (var i = 3; i < results.length; i++)它只显示一张图像,但显示的图像是第三张,我需要显示第一张 :) 请建议

4

3 回答 3

5

根本不要使用 for 循环。只需将所有实例替换为i0。

google.load('search', '1');   
    function searchComplete(searcher) {
      // Check that we got results
      if (searcher.results && searcher.results.length > 0) {
        // Grab our content div, clear it.
        var contentDiv = document.getElementById('contentimg');
        contentDiv.innerHTML = '';

        var result = searcher.results[0];

        var imgContainer = document.createElement('div');

        var newImg = document.createElement('img');
        // There is also a result.url property which has the escaped version
        newImg.src = result.tbUrl;

        imgContainer.appendChild(newImg);

        // Put our title + image in the content
        contentDiv.appendChild(imgContainer);

0 表示返回的第一项(编程中几乎所有的数字序列都从 0 开始!)因此所有其他结果都将被忽略。

于 2012-08-30T13:33:39.510 回答
0

使用break statement. 一旦找到图像,它将终止循环,因此您将只有第一个。

      for (var i = 1; i < results.length; i++) {
      // For each result write it's title and image to the screen
      var result = results[i];
      var imgContainer = document.createElement('div');



      var newImg = document.createElement('img');
      // There is also a result.url property which has the escaped version
      newImg.src = result.tbUrl;


      imgContainer.appendChild(newImg);

      // Put our title + image in the content
      contentDiv.appendChild(imgContainer);
       //Berore the end of the loop
      if(i==1)
      {
      break;
      }
   }
于 2012-08-30T13:35:11.000 回答
0

当您只需要一个元素时,您不需要 for 循环。您可以访问数组的第一个元素

result = results[0];

数组是从零开始的。所以当它包含三个图像时,图像被命名为 results[0]、results[1] 和 results[2]。

于 2012-08-30T13:37:25.337 回答