javascript - JQuery:在追加时得到一个 child

标签 javascript jquery

我在处理 json 请求时将 p 标签附加到 div,并希望根据请求中的内容设置样式。

$(document).ready(function() {
    function populatePage() {
        var numberOfEntries = 0;
        var total = 0;
        var retrieveVal = "http://www.reddit.com/" + $("#addressBox").val() + ".json";
        $("#redditbox").children().remove();
        $.getJSON(retrieveVal, function (json) {
            $.each(json.data.children, function () {
                title = this.data.title;
                url = this.data.url;
                ups = this.data.ups;
                downs = this.data.downs;
                total += (ups - downs);
                numberOfEntries += 1;
                $("#redditbox").append("<p>" + ups + ":" + downs + " <a href=\"" + url + "\">" + title + "</a><p>");
                $("#redditbox :last-child").css('font-size', ups%20); //This is the line in question
            });
            $("#titlebox h1").append(total/numberOfEntries);
        });
    }

    populatePage()

    $(".button").click(function() {
        populatePage();
    });
});

不幸的是,事情并没有按计划进行。所讨论行的样式适用于 div 的每个子元素,而不仅仅是当时恰好附加的子元素,因此它们最终都具有相同的大小,而不是根据它们的数量来调整大小。

当 p 标签附加到 div 时,我如何将样式应用到它们?

编辑:感谢 Fortes 和 Veggerby 都工作,但我最终选择了 Fortes,因为我做到了。

最佳答案

您可以使用 JQuery 的 appendTo 代替 append。对于您的示例:

$("<p>" + ups + ":" + downs + " <a href=\"" + url + "\">" + title + "</a><p>")
     .css('font-size', ups%20)
     .appendTo('#redditbox');

这是 appendTo 的文档:http://docs.jquery.com/Manipulation/appendTo

关于javascript - JQuery:在追加时得到一个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586463/

相关文章:

javascript - 打开div并关闭其他

javascript - 如何使用AngularJS通过属性获取dom元素

javascript - 无法在 Magento 中加载文件,尽管它们存在于服务器上

javascript - TypeScript - 元素隐式具有 'any' 类型 [...] 在类型上未找到参数类型为 'string' 的索引签名

jquery - 将单个表行设为红色(MVC 5/Bootstrap 3)

javascript - 函数不传递值作为参数

Jquery 工具工具提示不会消失

javascript - 如何在页面上包含用于按钮、图片等的多个 JavaScript 脚本?

javascript - 添加多个按钮到表单

javascript - 使用js或jquery替换w3-include-html attr