我有一個顯示系統狀態的站點,根據它顯示的系統的健康狀況,系統狀態後面有一個彩色條。我使用jQuery的HTML是:如何使用jQuery和XML數據更改使用CSS的HTML元素?
<script>
function myExampleSite()
{
var myURL = window.location.href;
var dashIndex = myURL.lastIndexOf("-");
var dotIndex = myURL.lastIndexOf(".");
var result = myURL.substring(dashIndex + 1, dotIndex);
return result;
}
var exampleSite = myExampleSite();
</script>
<script>
var root = null;
$(document).ready(function()
{
$.get("Status_Pages.xml",
function (xml)
{
root = $(xml).find("site[name='" + exampleSite + "']");
var status = $(root).find("systemStatus");
var color = status.attr("color");
$("#status").html(status.text());
$("#status").attr("color", color);
result = $(root).find("networkNotes");
$("#networkNotes").html($(result).text());
result = $(root).find("headerImage");
$("td#headerImage").html($(result).text());
....etc etc
});
});
</script>
我的XML文件看起來像這樣。
<sites>
<site name="Template">
<headerImage>images/template-header.png</headerImage>
<productVersion>[Version goes here]</productVersion>
<systemStatus color="green">Normal</systemStatus>
<networkNotes>System status is normal</networkNotes>
</site>
</sites>
我有幾個<site>
s表示都有自己的數據將填充各個網站的不同區域。儘管我遇到了麻煩。
我目前顯示我的狀態的方式是這樣的:
<tr>
<td class="table_header">
Current System Status
</td>
</tr>
<table><tr>
<td id="status"></td>
</tr></table>
<tr>
<td class="table_header">
Network Notes
</td>
</tr>
現在它是硬編碼,以顯示與任何文字背後的紅色,綠色或黃色條指示系統狀態系統的健康狀況,但我需要能夠讀取該網站的XML值。
棘手的部分是,我也使用來自CSS的這個網站的特定部分的數據。有關這一點的CSS代碼是(有一個綠色,黃色和紅色):
#status[color=green] {
color: white;
text-align: left;
background: url(images/greenbar.jpg) no-repeat;
}
#status[color=yellow] {
color: black;
text-align: left;
background: url(images/yellow.jpg) no-repeat;
}
#status[color=red]{
color: black;
text-align: left;
background: url(images/red.jpg) no-repeat;
}
**我如何能在系統狀態讀取字符串,用color
元素的屬性來填充我的HTML沿這樣每個站點都有不同的圖像,具體取決於XML中的內容? **
我已經嘗試了上述,它給文本的顏色背景,而不是圖像的網址背景。
它讀取正確的狀態,但圖像永遠不會出現在它後面。
'#normal_status'是一個ID而不是一個類,按照HTML規範,沒有兩個元素應該有相同的ID。 –
只有1個元素具有'#normal_status'。我展示了CSS和HTML中的內容。它在HTML中使用的唯一地方就是我在CSS代碼塊之前展示的內容。 – Mkalafut
你應該嘗試降低迴答你問題的門檻。這似乎是一個小問題的大閱讀。嘗試構建[SSCCE](http://www.sscce.org/)。解決大問題的關鍵是把它們分解成小的問題。你甚至可能最終找到自己的解決方案。 jsfiddle是一個很好的工具來幫助自己的位。 –