Javascript 如何创建标签';从服务器接收响应时,是否会动态更改?
我正在使用谷歌分析api 我使用的代码仅更改了客户端ID 当我请求一个google服务器时,它会在底部向我返回一个JSON文件Javascript 如何创建标签';从服务器接收响应时,是否会动态更改?,javascript,Javascript,我正在使用谷歌分析api 我使用的代码仅更改了客户端ID 当我请求一个google服务器时,它会在底部向我返回一个JSON文件 { "kind": "analytics#gaData", "id": "in here my ID", "query": { "start-date": "30daysAgo", //monthly statistic "end-date": "today", //last day today "ids": "ga:17242723
{
"kind": "analytics#gaData",
"id": "in here my ID",
"query": {
"start-date": "30daysAgo", //monthly statistic
"end-date": "today", //last day today
"ids": "ga:172427234",
"dimensions": "ga:country", //regions
"metrics": [
"ga:users" //users
],
"start-index": 1,
"max-results": 1000
},
"itemsPerPage": 1000,
"totalResults": 7,
"selfLink": "there some link",
"profileInfo": {
"profileId": "172427234",
"accountId": "116539423",
"webPropertyId": "UA-116539423-1",
"internalWebPropertyId": "172991088",
"profileName": "any info for website",
"tableId": "ga:172427234"
},
"containsSampledData": false,
"columnHeaders": [
{
"name": "ga:country",
"columnType": "DIMENSION",
"dataType": "STRING"
},
{
"name": "ga:users",
"columnType": "METRIC",
"dataType": "INTEGER"
}
],
"totalsForAllResults": {
"ga:users": "43523" //all users count which were in site
},
"rows": [ // regions from which they came to the site and how much user-entered from each region
[
"Dubai",
"28961"
],
[
"Germany",
"1400"
],
[
"Netherlands",
"111"
],
[
"Poland",
"10"
],
[
"Russia",
"1021"
],
[
"Ukraine",
"28"
],
[
"United States",
"11992"
]
]
}
问题是,正如你所看到的,有几个国家,每个国家有多少用户
我需要在收到服务器响应时动态创建标记。国家可以是10、100或1000,因此我需要在收到数据时动态创建标记。我在底部使用这段代码,但问题是它只显示第一个国家和用户。(它只工作一次)迪拜,28961
在第一次国家/地区控制台显示错误后,无法设置未定义的属性“innerHTML”
顺便说一下,这个代码是有效的(显示德国,1400)
但我不能使用它,因为它不是动态的。我只是不能复制它并更改变量国家/地区中提供的值
我提供了我从顶部链接的querycorerereportingapi
函数更改的代码段
.then(function(response) {
let users = JSON.parse(response.result.totalsForAllResults["ga:users"]);
var country = response.result.rows;
var toAdd = document.createDocumentFragment();
console.log(country.length);
while (country.length > 0) {
for(let i = 0;i < country.length;i++){
var span = document.createElement('span');
span.className = "country-users";
document.querySelector('.google-text-block').appendChild(span);
document.querySelector('.google-text-block').appendChild(document.createElement('br'));
for (let j = 0; j < country.length; j++) {
let countryUsers = document.querySelectorAll(".country-users");
countryUsers[j].innerHTML = country[i];
}
}
}
.then(函数(响应){
让users=JSON.parse(response.result.totalsForAllResults[“ga:users”]);
var country=response.result.rows;
var toAdd=document.createDocumentFragment();
控制台.日志(国家/地区.长度);
而(国家/地区长度>0){
for(设i=0;i
还有我从google文件中修改的一点点HTML
<div class="google-text-block">
<span class="users-numb">Users:</span>
<span class="numb"></span>
</div>
用户:
请任何人帮忙看,这是你应该做的 对于循环,不需要内部
var信息=[
[
“迪拜”,
"28961"
],
[
“德国”,
"1400"
],
[
“荷兰”,
"111"
],
[
“波兰”,
"10"
],
[
“俄罗斯”,
"1021"
],
[
“乌克兰”,
"28"
],
[
“美国”,
"11992"
]
];
var国家=信息;
for(设i=0;i
用户:
非常感谢:)+1来自me@Spectr我已经用你的代码更新了答案,你的代码出了什么问题。
<div class="google-text-block">
<span class="users-numb">Users:</span>
<span class="numb"></span>
</div>