用jQuery追加后重置CSS样式

时间:2013-01-07 23:35:09

标签: jquery css ajax

我正在使用回调返回的内容填充DIV,该回调中包含多个HTML项目,并且每个都有自己的类关联。在我调用.append之后,内容没有使用正确的关联样式。

$.ajax({
    type: "GET",
    url: "blah.xml",
    dataType: "xml",
    data: myData,
    success: function(xml) {
        $(xml).find('item').each(function(){
            var id = $(this).attr('appId');
            $('<li><h5 class="thing">' + id + '</h5>').appendTo('#results');
        });
    }
});

因此它抓取ID并在H5上使用类“thing”设置ID,然后将其附加到DIV结果。这工作正常,但问题是当发生这种情况时,名为“thing”的类永远不会被应用。它肯定存在,但没有得到渲染。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

$('#results').append('<li><h5 class="thing">' + id + '</h5>');

因此,由于许多原因,包括性能原因以及<ul>等的自动关闭,我建议您首先将整个子树构建为字符串。

var s = '<ul>';
$(xml).find('item').each(function(){
    var id = $(this).attr('appId');
    s += '<li><h5 class="thing">' + id + '</h5></li>';
});
$('#results').append(s + '</ul>');

答案 1 :(得分:0)

如果你想使用“li”列表,请使用标签“ul” 这样:

$('#results').append('<ul></ul>');

然后你必须编写这样的代码:

    var results = "";
    $(xml).find('item').each(function(){
         var id = $(this).attr('appId');
         results+= '<li><h5 class="thing">' + id + '</h5></li>';
     });
    $('#results ul').append(results);