我现在在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树。