Javascript 向Jquery HTML变量添加类

Javascript 向Jquery HTML变量添加类,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我试图将JSON文件中的多个类添加到我在同一函数中使用Jquery创建的HTML元素中。问题是没有一门课是低谷。 一些JSON数据段(项)有多个类,它们在一个数组中设置。HTML部件被创建,它获得dat.location,但它没有获得任何类。我认为我插入类的方式有问题,但不确定是什么 如何将类插入函数中的txtp变量 function CreateContent(data) { for (var i = 0; i < data.length; i++) { var

我试图将JSON文件中的多个类添加到我在同一函数中使用Jquery创建的HTML元素中。问题是没有一门课是低谷。 一些JSON数据段(项)有多个类,它们在一个数组中设置。HTML部件被创建,它获得dat.location,但它没有获得任何类。我认为我插入类的方式有问题,但不确定是什么

如何将类插入函数中的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); 
    }
}

您的问题是,每次使用jQuery对象时,您都要从
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);
  }
}
函数CreateContent(数据){
对于(变量i=0;i”+dat.location+'

).appendTo('.positionInHtml'); $txtp.addClass(数据项1); $txtp.addClass(数据项2); $txtp.addClass(数据项3); } }
试试这个

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

'); $(“.positionInHtml”).append(txtp); } }
问题似乎是,在JSON文件中,使用数组存储类,然后尝试使用Jquery.addClass插入它们。在本例中,它没有将值提供给目标txtp。一旦我删除了数组[“A1”,“A2”]并将它们放在字符串“A1 A2”中,它就按预期工作,并且类被赋予了txtp。

您能给我们展示一下
dat
结构,最好是一个工作片段来演示您的问题吗?实际上没有
$(txtp)
object。我添加了JSON文件中的数据内容。关于他为什么应该尝试
this
以及为什么
this
可以工作的一些解释会很好。这似乎是可行的,也很有意义,但我认为JSON文件数据数组中的某些内容不适用于它。我在问题中添加了JSON内容,这是因为有些属性是数组,而不是字符串,所以需要另一个循环来遍历它们并添加类名。
function CreateContent(data) {
    for (var i = 0; i < data.length; i++) {
        var dat = data[i];
        var classes = dat.items1+' '+dat.items2+' '+dat.items3;
        var txtp = $('<p class="column "'+classes+' href="#">' + dat.location + '</p>');
        $(".positionInHtml").append(txtp); 
    }
}