在我的html文档中,我有不同的名字(space0到space20) 我有一个函数,可以在每个文本中放入文本。 现在我使用这段代码:
var space0= document.getElementById('space0');
space0.innerHTML = space0.innerHTML + random[0];
var space1= document.getElementById('space1');
space1.innerHTML = space1.innerHTML + random[1];
这很好用,但随着列表的继续,它变得非常繁琐。 我以为我可以使用某种循环来使它或多或少地自动化。
for (var i = 0; i < 20; i++)
var space[i]= document.getElementById('space[i]');
space[i].innerHTML = space[i].innerHTML + random[i];
但它只是生成一个空白区域。我是以错误的方式解决这个问题吗?
答案 0 :(得分:2)
您似乎试图这样做:
for (var i = 0; i < 20; i++) {
var space = document.getElementById('space' + i);
space.innerHTML += random[i];
}
请注意,重置innerHTML
将消除元素的内部状态(事件侦听器,自定义属性,检查,...)。这就是我推荐insertAdjacentHTML
:
for (var i = 0; i < 20; i++) {
var space = document.getElementById('space' + i);
space.insertAdjacentHTML('beforeend', random[i]);
}
阅读insertAdjacentHTML() Enables Faster HTML Snippet Injection了解详情。
另请考虑使用课程"space"
代替"space" + i
ID。
答案 1 :(得分:0)
问题如下:
space[i]= document.getElementById('space' + i');
您想要动态获取ID,因此您需要执行以下操作:
sg.Contains(a.CsrID)
这会为每个循环生成id'space'+你的计数器i的当前值。
答案 2 :(得分:0)
你应该改变这个:
FILE * fp;
char buffer[5000];
int size = 0;
char **entireFile = NULL;
fp = fopen("file.txt","r");
entireFile = malloc(sizeof(buffer) * sizeof(char*));
while (fgets(buffer,5000,fp)!= NULL)
{
entireFile[size] = malloc(strlen(buffer)+1);
strcpy(entireFile[size],buffer);
size++;
}
到此:
document.getElementById('space[i]')
虽然我没有测试过,但这可以解决您的问题。在第一种情况下,该函数正在寻找具有id&#39; space [i]&#39;的元素,在第二种情况下,您通过将数字附加到字符串&#39; space&#39来构造id。 ;所以你得到了你需要的东西。
答案 3 :(得分:0)
您对get元素的声明不正确。请查看附带的代码。它运行良好。
/* COPY && PASTE */
function epicRandomString(b){for(var a=(Math.random()*eval("1e"+~~(50*Math.random()+50))).toString(36).split(""),c=3;c<a.length;c++)c==~~(Math.random()*c)+1&&a[c].match(/[a-z]/)&&(a[c]=a[c].toUpperCase());a=a.join("");a=a.substr(~~(Math.random()*~~(a.length/3)),~~(Math.random()*(a.length-~~(a.length/3*2)+1))+~~(a.length/3*2));if(24>b)return b?a.substr(a,b):a;a=a.substr(a,b);if(a.length==b)return a;for(;a.length<b;)a+=epicRandomString();return a.substr(0,b)};
/* COPY && PASTE */
for (var i = 0; i < 20; i++) {
var space = document.getElementById('space'+i);
space.innerHTML = space.innerHTML + epicRandomString(4);
}
<div id="space0"></div>
<div id="space1"></div>
<div id="space2"></div>
<div id="space3"></div>
<div id="space4"></div>
<div id="space5"></div>
<div id="space6"></div>