2012-08-26 76 views
2

我在寫一個解析XML文件並在html中顯示它的腳本。那就是:Javascript Value Check

<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> 

我想修改的「文件撰寫」的輸出,因此,如果值「量」爲正,輸入單詞「綠色」的,否則,如果爲負,輸入單詞「紅」。我試着按以下步驟寫:

<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> 

但在那一塊,我得到一個語法錯誤在「文件撰寫」。我寫錯了什麼,如何解決它?

+0

請注意,您使用'document.write'將用新內容替換整個頁面。 –

+0

SO的語法熒光筆有你的答案。它的引號,看你的問題中'綠色'和'紅色'如何突出顯示 –

回答

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> 

(語法未選中)

+0

你可以只寫一行:var color = amount <0? 「紅」:「綠」;' – balexandre

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> 
+0

謝謝他! =) –

3

得到答案只是看看,這個代碼是如何突出。 「綠色」和「紅色」等字在引號之外。你應該使用單引號(或者轉義雙引號)。

另一個問題是爲什麼你使用元編程這樣一個簡單的任務。只要寫出兩個不同的document.write聲明的條件。