我想在div中添加所有目的地作为标题,但只添加最后一个。这段代码有什么问题?
<script type="text/javascript">
$(function() {
var $dialog = $("#dialog");
var data = {
destinations: [
{dep: "Varna Airport", dest: "Domodedovo Airport"},
{dep: "Domodedovo Airport", dest: "Schwechat"},
{dep: "Schwechat", dest: "Heathrow Airport"}
]
};
$.each(data.destinations, function(key, destination) {
var $title = $('h1').text(destination.dep + ' - ' + destination.dest);
$dialog.append($title);
});
});
</script>
<div id="dialog"></div>
答案 0 :(得分:5)
您需要使用jQuery创建h1
,目前您正在选择h1
。
使用
$('<h1></h1>')
或
$('<h1/>')
而不是
$('h1')
$(function() {
var $dialog = $("#dialog");
var data = {
destinations: [{
dep: "Varna Airport",
dest: "Domodedovo Airport"
}, {
dep: "Domodedovo Airport",
dest: "Schwechat"
}, {
dep: "Schwechat",
dest: "Heathrow Airport"
}]
};
$.each(data.destinations, function(key, destination) {
var $title = $('<h1></h1>').text(destination.dep + ' - ' + destination.dest);
$dialog.append($title);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dialog"></div>
&#13;
答案 1 :(得分:2)
您将要使用:
var $title = $('<h1 />').text(destination.dep + ' - ' + destination.dest);
为什么?
$('h1')
正在设置它可以找到的第一个h1
标记的内容到当前字符串,然后将h1
移到$dialog
。
$('<h1 />')
实际上会为每次迭代创建一个新的h1
,这就是您需要的。
答案 2 :(得分:0)
<script type="text/javascript">
$(function() {
var $dialog = $("#dialog");
var data = {
destinations: [
{dep: "Varna Airport", dest: "Domodedovo Airport"},
{dep: "Domodedovo Airport", dest: "Schwechat"},
{dep: "Schwechat", dest: "Heathrow Airport"}
]
};
var $title = "";
$.each(data.destinations, function(key, destination) {
//Edited
$title += $('<h1 />').text(destination.dep + ' - ' + destination.dest);
});
$dialog.append($title);
});
</script>