とてもシンプルに聞こえますが、どういうわけかうまくいきません。
ロング ポーリングを使用して更新する必要があるテンプレート ページがあります。ロングポーリングは機能していますが、データの処理/挿入に失敗しています。
これは HTML 部分です。
<p><b><div id="weather">weather here</div></b></p>
<p><div id="temperature">temperature here</div></p>
<p><i><div id="color">color here</div></i></p>
これはスクリプトです:
var obj = {
"color": "#880000",
"temperature": "hot",
"weather": "cloudy"
};
$.each(obj function (key,value) {
('#key').html('value');
});
さらに、スタイル シートで色を使用したいのですが、分割されていない要素を置き換える方法がわかりません。
#color {
color: #880000
}
各配列の反復は教科書からのものだと思いました。私は何が欠けていますか?( jfsiddle の例はこちら)
提案された内容に基づいた2 回目の試みであり、型エラーを発生させる全体像:
php ファイル (array_2.php):
<?php
/*
Values get read from files.
Here, in the example, we simply populate variables.
Original:
$color = file_get_contents('/path/to/txt/file/with/value');
*/
$color = "#880000";
$temperature = "hot";
$weather = "cloudy";
$items = array(array(id => 'weather', text => $weather), array(id => 'color', text => $color), array(id => 'temperature', text => $temperature),);
echo json_encode($items);
?>
html/javascript:
<html>
<head>
<title>Satus Poller</title>
<script type="text/javascript" src="/jquery.js"></script>
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8">
function addstatus(obj){
$.each(obj, function (key,value) {
$('#' + value.id).html(value.text);
});
};
function waitForMsg(){
$.ajax({
type: "GET",
url: "array_2.php",
async: true,
cache: false,
timeout:50000,
success: function(data){
var arr = $.parseJSON(data);
var obj = arr + ""; /* This doesn't help */
addstatus(obj);
setTimeout(
waitForMsg,
1000
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
addmsg("error", textStatus + " (" + errorThrown + ")");
setTimeout(
waitForMsg,
15000);
}
});
};
$(document).ready(function(){
waitForMsg();
});
</script>
</head>
<body>
<p><div id="color">color</div></p>
<p><div id="temperature">temperature</div></p>
<p><div id="weather">weather</div></p>
</body>
</html>
(テキストと CSS 要素を同時に置換しようとさえ試みたことはありません。)