Javascript没有正确记录长度

时间:2015-11-05 13:48:42

标签: javascript html css console.log variable-length

我现在正在使用javascript这个问题,如果我要控制日志元素本身它会显示chrome的长度但是当我使用.length时它没有正确显示长度。

Chrome console



<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Hello World - Google  Web Search API Sample</title>
    <script src="https://www.google.com/jsapi"
        type="text/javascript"></script>
    <script language="Javascript" type="text/javascript">
	
    google.load('search', '1');

    function OnLoad() {
	
      var searchControl = new google.search.SearchControl();
	  
      var localSearch = new google.search.LocalSearch();
	  
      searchControl.addSearcher(new google.search.WebSearch());
	  
      localSearch.setCenterPoint("New York, NY");
	  
      searchControl.draw(document.getElementById("searchcontrol"));
	  
      searchControl.execute("a");
    }
    google.setOnLoadCallback(OnLoad);
    </script>
  </head>
  <body onLoad="myFunction()">
    <div id="searchcontrol">Loading</div>
    <script>
function myFunction() {
	    var y = document.getElementsByClassName('gsc-webResult gsc-result');
	    
	    var y2 = y.length;
	    console.log(y);
	    console.log(y2);
}
</script>
  </body>
</html>
&#13;
&#13;
&#13;

如上所示,我将元素保存在var y中并在y2中保存y的长度。然后我控制台记录这些变量,但它没有显示正确的长度。

我不确定这里有什么问题,希望你能提供帮助。

编辑:添加了工作源代码。

1 个答案:

答案 0 :(得分:-1)

var y = document.getElementsByClassName('gsc-webResult gsc-result');

返回与您的查询匹配的所有元素的数组。因此,y.length显示数组的长度,而不是元素的长度。

尝试y[0],假设您想要的元素是数组中的第一个元素。然后假设你想要文本的长度,在值上加上长度。

此外,如果您只需要一个元素,您可能希望使查询更具体 - 但由于您没有发布相应的DOM树,因此很难说。