Javascript 将返回数据中的文本动态添加到具有匹配id的div中
首先,我仍然是一个新手,并且仍然在学习,我已经学到了很多东西,并期待着随着我继续这段旅程继续下去。 好的,我有下面的代码,正在尝试将数组对象附加到具有匹配ID的正确Div中。我尝试了一个不起作用的if语句,然后一个Switch语句也不起作用。有人能告诉我正确的方向吗?注释文本必须附加到具有相同id的匹配div中 HTML DivsJavascript 将返回数据中的文本动态添加到具有匹配id的div中,javascript,jquery,arrays,html,Javascript,Jquery,Arrays,Html,首先,我仍然是一个新手,并且仍然在学习,我已经学到了很多东西,并期待着随着我继续这段旅程继续下去。 好的,我有下面的代码,正在尝试将数组对象附加到具有匹配ID的正确Div中。我尝试了一个不起作用的if语句,然后一个Switch语句也不起作用。有人能告诉我正确的方向吗?注释文本必须附加到具有相同id的匹配div中 HTML Divs <div class="containerA" id='text b'></div> <div class="containerA"
<div class="containerA" id='text b'></div>
<div class="containerA" id='text a'></div>
JavaScript
var myArray = [
a = {
text: 'text a',
comment: 'comment a'
},
b = {
text: 'text b',
comment: 'comment b'
},
c = {
text: 'text a',
comment: 'comment c'
},
d = {
text: 'text a',
comment: 'comment d'
},
e = {
text: 'text b',
comment: 'comment e'
}
];
for (var i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
var row = myArray[i];
console.log(row.text);
var textRef = row.text;
var commentsText = row.comment;
console.log(commentsText);
}
var myContainer = document.getElementsByClassName('containerA');
for (var i = 0; i < myContainer.length; i++) {
console.log(myContainer[i].attributes[1].nodeValue);
var idRef = myContainer[i].attributes[1].nodeValue;
}
var myArray=[
a={
文本:“文本a”,
评论:“评论a”
},
b={
文本:“文本b”,
评论:“评论b”
},
c={
文本:“文本a”,
评论:“评论c”
},
d={
文本:“文本a”,
评论:“评论d”
},
e={
文本:“文本b”,
评论:“评论e”
}
];
对于(var i=0;i
您的textRef
等于id
字段,因此使用$('#'+textRef)
绘制div
,然后使用append()
将commentsText
添加到div中
$('#'+textRef).append(commentsText+“
”)
如果您想要“仅javascript”,请使用以下代码:
var div = document.getElementById('textRef');
div.innerHTML = div.innerHTML + commentsText + '<br />';
var div=document.getElementById('textRef');
div.innerHTML=div.innerHTML+commentsText+'
';
var myArray=[
a={
text:'text_a',
评论:“评论a”
},
b={
text:'text_b',
评论:“评论b”
},
c={
text:'text_a',
评论:“评论c”
},
d={
text:'text_a',
评论:“评论d”
},
e={
text:'text_b',
评论:“评论e”
}
];
对于(var i=0;i”)
}
var myContainer=document.getElementsByClassName('containerA');
对于(变量i=0;i
试试这个:
myArray.forEach( function(item){
document.getElementById( item.text ).innerHTML = item.comment;
});
如果要求每次追加而不是提供新文本:
myArray.forEach( function(item){
var newestComment = document.createTextNode( item.comment );
document.getElementById( item.text ).appendChild( newestComment );
});
您永远不应该在
id
字段中使用空格为什么不使用jquey的DOM操作,也不要在ClassName中使用空格感谢我将在返回的数据中更改它,因为div是根据输入的数据动态创建的。有了提供的答案,您不再需要第二个for循环。但我只是想让您知道,您可以使用myContainer[i].attributes[1].nodeValue
而不是myContainer[i].attributes.id
。非常感谢Jonofa,我会记得非常感谢。Carsten再次非常感谢主项目正在工作,现在我将id更改为无空格工作。我添加了它,并出现以下错误“UncaughtReferenceError:$未定义”我在我的项目中使用Jquery-2-2-4。好的,我发现Jquery问题将Jquery脚本移到了我的JavaScript引用之上,所以它现在可以追加了,非常感谢您的帮助。我会尝试一下,数据是从Azure表调用的,所以我认为追加是正确的方法