我在处理 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/