jQuery .append自己完成div?

时间:2015-06-13 11:56:08

标签: jquery html

我有一个div <div id="articles-feed">,我试图添加更多东西。我得到了一些我用JSON.parse解析的JSON数据,格式化了一下,然后尝试添加到我的代码中。

问题是,解析后的数据包含一系列类别,我需要显示所有类别,所以我想我只需.append 3次,{{1}介于两者之间以获取相关数据。

现在,当我运行我的函数时会发生一件奇怪的事情,在我的第一个for-loop之后添加</div>,所以第二个和第三个.append被添加到.append的外部}。如果我尝试使用<div class="article-box">为我的第二个$('.article-box')直接定位该类,则不会发生任何事情。

任何人都可以弄清楚我做错了什么吗?

我的HTML:

.append

我的jQuery:

<div id="articles-sidebar">
    <h2>Search articles archive:</h2>
    <form id="searchbox" method="post">
        <input name="searchword" type="text" placeholder="author, title, keyword...">
        <input type="submit" value="Search">
    </form>
</div>
<div id="articles-feed">
</div>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="js/articles.js"></script>

2 个答案:

答案 0 :(得分:0)

File root = new File("/storage/sdcard1");
// or
File root = new File("/storage/sdcard0"); // if UNMOUNTED , i know ..

//File[] files = root.listFiles();
//for(File singlFile: files){
    // ...      
//}

这将有效。我试过这个为我工作

答案 1 :(得分:0)

问题是您正在尝试附加起始标记和结束标记。它没有这样的工作,你只能附加完整的元素。

开始和结束标记仅在HTML中用于描述元素,一旦将其解析为元素,就没有单独的起始和结束部分,它只是一个元素。

创建一个可以将类别放入的列表元素:

var list = $('<ul>', { className: 'article-categories' });
for(x = 0; x < categories.length; x++) {
  list.append($('<li>', { className: 'article-category' }).text(categories[x]));
  if (categories[x] == "free") {
    $(".article-box").addClass("free");
  }
}// end categories append for loop

创建一个框以将列表和其他元素放在:

var box = $('<div>', { className: 'article-box' });
box.append([
  $('<h1>').html('<a href="#">' + response[x].title + '</a>'),
  $('<h3>').html('<a href="#">' + response[x].name + '</a>&nbsp;|&nbsp;' + posted.toLocaleDateString()),
  list,
  $('<p>').text(extract)
]);

将框放在页面中:

$("#articles-feed").append(box);