javascript - 无法让 jQuery 创建正确的 HTML

标签 javascript jquery html

我正在使用通过 jQuery 解析的 json 数据创建 Accordion 菜单。数据已导入并按应有的方式显示。但是,正在创建的 HTML 不正确,我不确定问题出在哪里。这是我需要通过 jQuery 创建的 HTML:

<div id="pselector">
<div class="accordion accordion-bg clearfix">
    <div class="acctitle" >Category 1</div>
    <div class="acc_content clearfix">Product1</div>

    <div class="acctitle">Category 2</div>
    <div class="acc_content clearfix">Product 2</div>

    <div class="acctitle">Category 3</div>
    <div class="acc_content clearfix">Product 3</div>

    <div class="acctitle">Category 4</div>
    <div class="acc_content clearfix">Product 4</div>

    <div class="acctitle">Category 5</div>
    <div class="acc_content clearfix">Product 5</div>

    <div class="acctitle">Category 6</div>
    <div class="acc_content clearfix">Product 6</div>

</div>
</div>

这是我当前的 jQuery 脚本:

<script>
    $.getJSON('https://example.com/api/products/GetProductList/', function(data) {
        var output = '<div class="accordion accordion-bg clearfix">';
        for (var i in data.Categories) {
            output += '<div class="acctitle">' + data.Categories[i].Category + "</div>";
            output += '<div class="acc_content clearfix">';
            for (var j in data.Categories[i].Products) {
                output += data.Categories[i].Products[j].short_description + " -- " + data.Categories[i].Products[j].cost + " USD";
            }
            output += "</div>";
        }
        output += "</div>";

        document.getElementById("pselector").innerHTML = output;
    });
</script>

当我查看创建的 HTML 时,它看起来是正确的,但在浏览器中显示不正确。我忽略了什么?

最佳答案

我在这里看到的问题是您试图将 <li> <div> 中的元素.具有 acc_content 类的 div 应该是 <ul> (无序列表)或 <ol> (有序列表)但是 <ul>可能是你想要的。试试这个

   $.getJSON('https://example.com/api/products/GetProductList/', function(data) {
        var output = '<div class="accordion accordion-bg clearfix">';
        for (var i in data.Categories) {
            output += '<div class="acctitle">' + data.Categories[i].Category + "</div>";
            output += '<ul class="acc_content clearfix">';
            for (var j in data.Categories[i].Products) {
                output += '<li>' + data.Categories[i].Products[j].short_description + " -- " + data.Categories[i].Products[j].cost + " USD  </li>";
            }
            output += "</ul>";
        }
        output += "</div>";

        document.getElementById("pselector").innerHTML = output;
    });

关于javascript - 无法让 jQuery 创建正确的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31037265/

相关文章:

调整文本区域大小的javascript代码,对焦点增益有动画效果

php - 想在 javascript 函数中将 php 变量作为参数传递?

javascript - AngularJS:动态编译指令

javascript - 我如何知道 imgAreaSelect 何时关闭?

jquery - 我有两个输入字段,用户可以在其中输入他们的值,如果值不同,则应更改结果

javascript - 将每个页面的 javascript 合并到一个文件中,还是提供页面特定的文件?

javascript - 绑定(bind)动态生成的表单的属性

html - Bootstrap 3 中下拉菜单的两种不同样式?

javascript - 如何使用 Javascript 作为 accesskey 覆盖/禁用 Firefox 菜单快捷键

jquery - 在 bootstrap carousel 中使用图像而不是幻灯片的背景