在动态生成的HTML中更改CSS

时间:2013-06-12 05:42:18

标签: html css generated

如果我不能使用ID,我怎样才能访问和更改CSS中完全动态生成的HTML中的字体颜色,因为我事先并不知道会生成多少相同的HTML标签,哪些它需要两种不同的(红色/绿色)颜色? (我是新来的,在JS中很新)

将在服务器上生成和收集数据。我让他们回来并在“fieldset”中进行排序,并在“可折叠”中进一步排序。数据“var a,b和c”汇集在一行(fieldset)中,并且应该是特定的字体颜色。因此,对于“var d”,对于此字体颜色,将从XML返回“xx”或“yy”并保存在“var d”中,因此字体颜色应为“红色”或“绿色”。

简短的部分脚本:

function addPart(currentIndex,currentPart)
{
    var a = $(currentPart).find("a").text();
    var b = $(currentPart).find("b").text();
    var c = $(currentPart).find("c").text();        
    var d = $(currentPart).find("d").text();
    if(d === "xx") {
        $("div.productColor").css({"color":"green"});
    } else {
        $("div.productColor").css({"color":"red"});
    };

    $("#shoppingTableDiv").append (
        "<div data-role='collapsible'>"

            + "<h3>"
                + "<div class='productColor'>"
                        + "<fieldset class='ui-grid-b'>"
                            + "<div class='ui-block-a'>" 
                            + a
                            + "</div>"
                            + "<div class='ui-block-b'>" 
                            + b
                            + "</div>"
                            + "<div class='ui-block-c'>" 
                            + c
                            + "</div>"
                        + "</fieldset>"
                + "</div>"
            + "</h3>"
          + "</div>");

    $('#shoppingTableDiv').collapsibleset('refresh');                

}

1 个答案:

答案 0 :(得分:0)

我并不完全了解您希望如何为结果着色,但我认为您可以使用fieldset类。

例如:

.ui-grid-b div { color: red; }
.ui-grid-c div { color: green; }

如果您不知道自己将拥有多少个字段集,并且无法使用代码示例中显示的字段集类,则可能会发现nth-child选择器很有用。

也许是这样的:

fieldset:nth-child(2n) div { color: red; }
fieldset:nth-child(2n+1) div { color: green; }