Javascript没有正确记录长度



我现在在javascript方面遇到了这个问题,如果我对元素本身进行控制台日志记录,它将以chrome显示长度,但当我使用.length时,它没有正确显示长度。

Chrome控制台

<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>

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

我不知道这里出了什么问题,希望你能帮忙。

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新