javascript - 将类添加到 Jquery HTML 变量

标签 javascript jquery html json

我正在尝试将多个类从 JSON 文件添加到我在同一函数中使用 Jquery 创建的 HTML 元素。问题是所有类(class)都没有通过。 一些 JSON 数据部分(项目)有多个类,它们被设置在一个数组中。 HTML 部分已创建并获取 dat.location 但未获取任何类。我认为我插入类(class)的方式有问题但不确定是什么。

如何将类插入函数中的 txtp 变量?

function CreateContent(data) {
    for (var i = 0; i < data.length; i++) {
        var dat = data[i];
        var txtp = $('<p class="column" href="#">' + dat.location + '</p>');
        $(txtp).addClass(dat.items1);
        $(txtp).addClass(dat.items2);
        $(txtp).addClass(dat.items3);
        $(".positionInHtml").append(txtp); 
    }
}

这是 JSON 数据文件包含的内容,我简化/更改了这个问题的变量名称。

{
  "Places": [
    {
      "location": "Name1",
      "items1": [ "1A" ],
      "items2": [ "1B","11B" ],
      "items3": [ "1C" ]
    },
    {
      "location": "Name2",
      "items1": [ "2A" ],
      "items2": [ "2B" ],
      "items3": [ "2C","22C" ]
    }
}

最佳答案

你的问题是因为你每次使用它时都从 txtp 创建新的 jQuery 对象,所以没有任何更改被保留。

要解决此问题,请创建一次对象,然后根据需要修改/附加它:

function CreateContent(data) {
  for (var i = 0; i < data.length; i++) {
    var dat = data[i];
    var $txtp = $('<p class="column" href="#">' + dat.location + '</p>').appendTo('.positionInHtml');
    $txtp.addClass(dat.items1);
    $txtp.addClass(dat.items2);
    $txtp.addClass(dat.items3);
  }
}

关于javascript - 将类添加到 Jquery HTML 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659243/

相关文章:

javascript - 从选择框中选择项目

javascript - 在选择时模拟点击事件(不适用于 IE 和 FF)

javascript - 与多个变量连接的字符串未在 setTimeout() 中执行

javascript - 为什么json在不同的应用环境下解析不同?

相当于 JavaScript 的 String.match() 的 Java

javascript - Selenium 网络驱动程序 : Highligh an Element at some Coordinates

javascript - div上的jquery点击事件

javascript - JQuery - 选择选项不会附加在更改事件上

php - jQuery Flot 与 PHP

javascript - 多个 HTML 相同的 id 元素,如果只有一个在 DOM 中呈现