我正在開發一個通過 ajax 呼叫獲取 json 的應用程式。此 json 包含物件,您可以在其中獲得每個分機的特定狀態代碼(1 = 在線,2,正在響鈴,3 = 忙)
如何確保將我回傳的值轉換為文本(最好使用不同的顏色)
所以當我得到一個 1 回來時,我希望它顯示在線,并帶有 2 環等
$.ajax({
type:'GET',
url: url,
dataType: 'json',
error: function(jqXHR, exception) {ajax_error_handler(jqXHR, exception);},
success: function(data){
// console.log(JSON.parse(data.responseText));
// console.log(JSON.parse(data.responseJSON));
console.log(data['entry']);
var event_data = '';
$.each(data.entry, function(index, value){
/* console.log(data['entry']);*/
event_data = '<tr>';
event_data = '<td>' value.extension '</td>';
event_data = '<td>' value.status '</td>';
<!--event_data = '<td>' value.registration '</td>';-->
event_data = '</tr>';
});
$("#list_table_json").append(event_data);
},
error: function(d){
/*console.log("error");*/
alert("404. Please wait until the File is Loaded.");
}
});
提前致謝!
uj5u.com熱心網友回復:
我已經更改了代碼
function get_blf() { $.ajax({ type:'GET', url: url, dataType: 'json', error: function(jqXHR, exception) {ajax_error_handler(jqXHR, exception);}, 成功: function(data) {
$.each(data.entry, (index, value) => {
const tableRow = document.createElement('tr');
const tdExtension = document.createElement('td');
extension.textContent = value.status;
const tdStatus = document.createElement('td');
if (value.status == 3) status.textContent = 'Busy';
if (value.status == 2) status.textContent = 'Ringing';
if (value.status == 1) status.textContent = 'Online';
tdStatus.classList.add(`status-${value.status}`);
tableRow.appendChild(tdExtension);
tableRow.appendChild(tdStatus);
$('#list_table_json').append(tableRow);
}
});
}
}
并添加 css,但現在我無法取回任何值。但現在我無法取回任何值。(對不起,我對 javascript 還很陌生)
uj5u.com熱心網友回復:
請使用DOM API
獲取顏色的一種方法是使用 CSS 類作為狀態:
// js
...
$.each(data.entry, (index, value) => {
const tableRow = document.createElement('tr');
const tdExtension = document.createElement('td');
extension.textContent = value.extension;
const tdStatus = document.createElement('td');
if (value.status == 3) status.textContent = 'Busy';
if (value.status == 2) status.textContent = 'Ringing';
if (value.status == 1) status.textContent = 'Online';
tdStatus.classList.add(`status-${value.status}`);
tableRow.appendChild(tdExtension);
tableRow.appendChild(tdStatus);
$('#list_table_json').append(tableRow);
});
...
// css
.status-1 {
color: green;
}
.status-2 {
color: red;
}
.status-3 {
color: orange;
}
uj5u.com熱心網友回復:
我終于讓腳本作業了。我現在正在嘗試構建輪詢,但是我看到再次執行 ajax 呼叫并獲取了陣列。但是,表沒有重繪 ,而是添加了一個新表,有人知道解決方案嗎?
我現在用于重新投票的代碼是
function repoll(poll_request, poll_interval, param=null) {
if (poll_interval != 0) {
if (window.timeoutPool) {
window.timeoutPool.push(setTimeout(function() { poll_request(param); }, poll_interval));
}
else {
setTimeout(function() { poll_request(param); }, poll_interval);
}
}
else {
log_msg('Poll cancelled.');
}
}
tableRow.appendChild(tdExtension);
tableRow.appendChild(tdNr);
tableRow.appendChild(tdStatus);
$('#list_table_json').append(tableRow);
});
repoll(get_blf, poll_interval_blf);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/434883.html
