首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态创建包含数据属性和HTML的元素,并插入现有元素

动态创建包含数据属性和HTML的元素,并插入现有元素
EN

Stack Overflow用户
提问于 2016-02-02 16:06:50
回答 2查看 625关注 0票数 0

我使用AJAX获取数据,需要动态创建列表。一开始我有:

代码语言:javascript
复制
<ul id="list">
</ul>

最后,我想要:

代码语言:javascript
复制
<ul id="list">
    <li data-city-numb="001">city-1<span>country-1</span></li>
    <li data-city-numb="002">city-2<span>country-2</span></li>
</ul>

现在我停止了这段代码(我知道这是错误的):

代码语言:javascript
复制
for (var i = 0; i < numbOfCityList; i++) {
    $('<li/>', {
        text: myCityList.list[i].city + "<span>" + myCityList.list[i].county + "</span>"
    }).appendTo("#selected-list");
    $("#list").last().data(myCityList.list[i].numbid);
}; 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-02 16:18:50

你不包括太多的信息,所以我列入了我自己版本的城市名单。

您可以这样做(尽管还有许多其他可能的方法):

代码语言:javascript
复制
var myCityList = [{
  city: 1,
  county: 1
}, {
  city: 13,
  county: 7
}];

for (var i = 0; i < myCityList.length; i++) {
  $li = $('<li/>');
  $li.attr('data-city-numb', myCityList[i].city);
  $li.html(myCityList[i].city + ", <span>" + myCityList[i].county + "</span>");
  $('#list').append($li);

  // For one-line fans:
  // $('<li>').attr('data-city-numb', myCityList[i].city).html(myCityList[i].city + ", <span>" + myCityList[i].county + "</span>").appendTo('#list');
};

  // Or even, remove even the for(...) loop: 
  // $.map(myCityList,function(i, el) { $('<li>').attr('data-city-numb', el.city).html(el.city + ", <span>" + el.county + "</span>").appendTo('#list');});

  // I prefer the first version for readability
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id='list'></ul>

票数 0
EN

Stack Overflow用户

发布于 2016-02-02 16:20:36

首先,当您的#selected-list拥有id="list"时,您将向id="list"附加一些内容。这就是为什么您的代码一开始就不能工作,因为<ul id="selected-list">不存在!

假设您的数据正确地通过(通过AJAX返回),并且您使用的数组实际上充满了数据,那么您应该执行以下操作:

代码语言:javascript
复制
$('#list').append('<li data-city-numb="' + myCityList[i].city + '">' + myCityList[i].city + ', <span>' + myCityList[i].county + '</span></li>');

见工作示例:

代码语言:javascript
复制
var myCityList = [{
  city: 'Amsterdam',
  county: 'Netherlands'
}, {
  city: 'Rotterdam',
  county: 'Netherlands'
}];

for (var i = 0; i < myCityList.length; i++) {
  $('#list').append('<li data-city-numb="' + myCityList[i].city + '">' + myCityList[i].city + ', <span>' + myCityList[i].county + '</span></li>');
};
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
</ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35158248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档