JavaScript循环打印HTML代码
JavaScript loop printing a HTML code
我有这个HTML代码:
<div class="content">
<article class="underline">
<a href="incidente.html"><img id="incidente"
src="img/buraco.jpg" alt="Incidente" /></a>
<h2><a href="basic_markup.html" id="tit"></a></h2>
<p id="desc">Esse buraco na rua Montes Claros já está há 1 ano
trazendo transtornos aos moradores</p><p></p>
<div class="date" id="date"></div>
<img class="tick" alt="não resolvido" src="img/no-tick.png">
<img class="apoio" alt="apoiar" src="img/apoio.png">
</article>
这个接收数组的ajax:
$.ajax({
type: "GET",
url: "http://localhost/again/www/index.php",
dataType: "json",
success: function (data) {
var tit = "";
// Loop over each object
for (var $i = 0; $i < data.length; $i++) {
var object = data[$i];
tit+= object.titulo;
}
$('#tit').html(tit);
}
});
</script>
现在,它将所有内容插入同一HTML代码中(当然,因为我没有foreach),但我想为我收到的每一行(每个"tit")显示这个HTML。。。有人能帮我吗?
我所理解的是:您有一个包含要循环并显示的文本的数组。
如果这是你的阵列:
["Text 1", "Text 2", "Text 3", "Text 4", "Text 5"]
然后你希望这个显示
<element>Text 1</element>
<element>Text 2</element>
<element>Text 3</element>
<element>Text 4</element>
<element>Text 5</element>
代码中的问题
我在代码中看到的问题是,您使用的是jquery的.html(arrayItem)
,它将覆盖元素内的任何现有文本。
相反,看看我的解决方案:(http://jsfiddle.net/ProgrammerKid/v6upsLp8/)
HTML
<div id="tit"></div>
JavaScript
$(document).ready(function () {
var tit = ["Text 1", "Text 2", "Text 3", "Text 4", "Text 5"];
for (var i in tit) {
var element = document.createElement("h2");
element.innerHTML = tit[i];
$("#tit").append(element);
}
});
在这里,我们使用jQuery的.append
,创建一个node
,并将node
附加到包装器元素中。
如果你有任何问题,请在下面留言,我会尽快回复
保持事物有序的最佳方法是使用模板引擎,如车把。我已经为您设置了一个jsfiddle,它使用您提供的示例数据来呈现您的文章(需要一些格式才能开始工作)。
http://jsfiddle.net/4ud6rLfq/10/
// This is what you'll need to get the data via AJAX
var source = $("#template").html();
var template = Handlebars.compile(source);
$.ajax({
type: "GET",
url: "http://localhost/again/www/index.php",
dataType: "json",
success: function (data) {
$.each(data, function(key, value) {
$('#articles').append(template(value));
});
}
});
// A demo using the data you provided (formatted a bit)
var data = [
{
"codigo":"32",
"titulo":"Some title here",
"descricao":"Here is my description",
"data":"2015-10-29 21:48:13"
},{
"codigo":"33",
"titulo":"Title here",
"descricao":"description here",
"data":"2015-10-30 20:45:46"
}
];
var source = $("#template").html();
var template = Handlebars.compile(source);
$.each(data, function(key, value) {
$('#articles').append(template(value));
});
以及您需要的HTML:
<script id="template" type="text/x-handlebars-template">
<article class="underline">
<a href="#">
<img class="incidente" src="" alt="{{titulo}}" />
</a>
<h2><a href="#">{{titulo}}</a></h2>
<p class="desc">{{descricao}}</p>
<p></p>
<div class="date" class="date">{{data}}</div>
<img class="tick" alt="não resolvido" src="img/no-tick.png">
<img class="apoio" alt="apoiar" src="img/apoio.png">
</article>
</script>
<div id="articles"></div>
有一个使用$.ajax函数的例子被注释掉了,下面还有一个使用数据变量的例子——你所需要做的就是在jQuery之后在你的页面中包含把手,这应该很好。您可以编辑模板中的变量,以匹配通过ajax传递回脚本的任何变量。
基本上,首先要为数据设置模板,然后循环数据并将每个项目绑定到模板,然后将项目模板以HTML形式附加到#articles容器中,然后移动到下一个项目,直到完成。
如果我理解你的意思,你有多篇文章,你想动态更改它们的标题吗?
如果是这样,首先你应该删除;
$('#tit').html(tit);
然后在循环中放入:
$('#content article:eq('+$i+')').find('#tit').html(object.titulo);
只有当$i
与相对于其父元素的元素索引相同时,这才有效。
您可以创建一个函数,返回带有html标记的字符串。如果需要填充html模板,则需要向该函数发送params。以下是javascript的一个示例:
http://jsfiddle.net/fnLjcfvr/1/
function getHtml(title){
var html = "";
html += '<div class="content">';
html += '';
html += '<article class="underline">';
html += '<a href="incidente.html"><img id="incidente"';
html += 'src="img/buraco.jpg" alt="Incidente" /></a>';
html += '<h2><a href="basic_markup.html" id="tit"> + ' title ' + </a></h2>';
html += '<p id="desc">Esse buraco na rua Montes Claros já está há 1 ano trazendo transtornos aos moradores</p><p></p>';
html += '<div class="date" id="date"></div>';
html += '<img class="tick" alt="não resolvido" src="img/no-tick.png">';
html += '<img class="apoio" alt="apoiar" src="img/apoio.png">';
html += '';
html += '</article>';
return html;
}
- 创建一个循环来简化HTML和CSS代码
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 如何解析结构不良的 html 代码
- HTML标记,包含带引号的JavaScript代码中的引号
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 将第一个字母大写并去掉html代码
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- 使用.format在一些HTML代码中插入文本,会出现错误(Python)
- html代码没有在记事本++上运行
- 来自mysql的动态值用于html代码点火器视图中的图形
- 如何:编写漂亮的HTML代码和Javascript控制台
- 在html标记中序列化javascript代码
- 我需要java代码来打开html代码onclick事件
- html代码需要可点击的文本按钮
- 无法使用我的代码(html/js/css)初始化网络摄像头
- 如何编辑此代码HTML/CSS以使'选择'JS代码也复制2剪贴板
- 如何使用js来反转义代码html
- 如何在 ATTR 标题中显示代码 HTML