2

我正在编写一个解析 XML 文件并将其显示为 html 的脚本。这里是:

<script>
$.get("api.xml", function (xml) {
    $(xml).find("row").each(function () {

       var date = $(this).attr('date');
       var amount = $(this).attr('amount');
       var balance = $(this).attr('balance');

document.write("A: " + date + "<br />B: " + amount + " ISK<br />C: " + balance + " ISK<br /><br /><br /><br />");
    });
});
</script>

我想修改“document.write”的输出,如果“amount”值为正,则输入“green”一词,否则,如果值为“red”,则输入“red”。我试着写如下:

<script>
$.get("api.xml", function (xml) {
    $(xml).find("row").each(function () {

       var date = $(this).attr('date');
       var amount = $(this).attr('amount');
       var balance = $(this).attr('balance');

document.write("<script> if (amount >= 0) { document.write("green"); } else{ document.write("red"); } </scri" + "pt>");
    });
});
</script>

但在那篇文章中,我在“document.write”中遇到语法错误。我写错了什么,如何解决?

4

3 回答 3

3

我认为您可以在使用 document.write 写入输出之前计算颜色。像这样的东西应该工作:

<script>
$.get("api.xml", function (xml) {
  $(xml).find("row").each(function () {
    var date = $(this).attr('date');
    var amount = $(this).attr('amount');
    var balance = $(this).attr('balance');

    var color = "green";
    if (amount < 0) {
     color = "red";
    }

    document.write("A: " + date + "<br />B: <span style='color:" + color + "'>" + amount + " ISK</span><br />C: " + balance + " ISK<br /><br /><br /><br />");
 });
});
</script>

(未检查语法)

于 2012-08-26T11:05:56.783 回答
3

要得到答案,只需看看这段代码是如何突出显示的。“绿色”和“红色”这两个词在引号之外。您应该使用单引号(或转义双引号)。

另一个问题是你为什么要使用元编程来完成这样一个简单的任务。只需用两个不同的document.write语句编写一个条件。

于 2012-08-26T11:07:01.423 回答
2
<script>
$.get("api.xml", function (xml) {
    $(xml).find("row").each(function () {

       var date = $(this).attr('date');
       var amount = $(this).attr('amount');
       var balance = $(this).attr('balance');
       document.write(amount >= 0 ? "green" : "red");
    });
});
</script>
于 2012-08-26T11:05:46.730 回答