我现在正在使用javascript这个问题,如果我要控制日志元素本身它会显示chrome的长度但是当我使用.length时它没有正确显示长度。
<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;
如上所示,我将元素保存在var y中并在y2中保存y的长度。然后我控制台记录这些变量,但它没有显示正确的长度。
我不确定这里有什么问题,希望你能提供帮助。
编辑:添加了工作源代码。
答案 0 :(得分:-1)
var y = document.getElementsByClassName('gsc-webResult gsc-result');
返回与您的查询匹配的所有元素的数组。因此,y.length显示数组的长度,而不是元素的长度。
尝试y[0]
,假设您想要的元素是数组中的第一个元素。然后假设你想要文本的长度,在值上加上长度。
此外,如果您只需要一个元素,您可能希望使查询更具体 - 但由于您没有发布相应的DOM树,因此很难说。