Javascript 动态更新列表中的数据
第一篇文章是关于堆栈溢出的 我正在创建一个YouTube流监视器,以同时监视多个流,在我尝试解决如何更新数据之前,一切都进展顺利。我连接到API,将数据转换成json格式,使页面运行良好。现在的问题是更新数据,而我可以每x秒刷新一次数据部分,这将导致嵌入式视频每次都刷新Javascript 动态更新列表中的数据,javascript,php,html,json,auto-update,Javascript,Php,Html,Json,Auto Update,第一篇文章是关于堆栈溢出的 我正在创建一个YouTube流监视器,以同时监视多个流,在我尝试解决如何更新数据之前,一切都进展顺利。我连接到API,将数据转换成json格式,使页面运行良好。现在的问题是更新数据,而我可以每x秒刷新一次数据部分,这将导致嵌入式视频每次都刷新 <?php $url = "data_template.json"; //static json for development $json = file_get_contents($url); $data = json_
<?php
$url = "data_template.json"; //static json for development
$json = file_get_contents($url);
$data = json_decode($json);
$html = null;
foreach ($data->data as $program) {
$html .= "<li id='1'>
<img src='images/test.jpg' width='100%'>
<!--YouTube Stream <iframe> embed -->
<button>Public</button><button disabled>Preview - Not Enabled</button>
<h4> {$program->broadcast->title} ( {$program->broadcast->id} )</h4>
<p id='broad'>Broadcast Status: {$program->broadcast->lifeCycleStatus} </p>
<p>Stream Status: {$program->stream->streamStatus} and {$program->stream->healthStatus} </p>
<p>Last Updated: {$program->stream->lastUpdate} </p>
</li>";
};
echo $html;
?>
- 首先,我会将您的
标记更改为
标记,这在W3C标准中更为形象和简洁李>
- 接下来,您需要提出JS,它将获得您想要的元素。你应该高度考虑jQuery。对于像你这样的初学者来说,这更容易处理
- 最后,在创建HTML时,为以后需要用JS更新的每个元素添加一个类
例如,如果您的HTML如下所示:
<script src="//code.jquery.com/jquery-1.10.2.js"></script><!-- jQuery lib -->
<div class="video_block">
<img src='images/test.jpg' width='100%'>
<button>Public</button>
<button disabled>Preview - Not Enabled</button>
<h4><span class="title_1">Something</span> ( <span class="title_2">Something</span> )</h4>
<p>Broadcast Status: <span class="b_status">Something</span> </p>
<p>Stream Status: <span class="s_status_1">Something</span> and <span class="s_status_2">Something</span> </p>
<p>Last Updated: <span class="u_status">Something</span> </p>
</div>
<div class="video_block">
<img src='images/test.jpg' width='100%'>
<button>Public</button>
<button disabled>Preview - Not Enabled</button>
<h4><span class="title_1">Something</span> ( <span class="title_2">Something</span> )</h4>
<p>Broadcast Status: <span class="b_status">Something</span> </p>
<p>Stream Status: <span class="s_status_1">Something</span> and <span class="s_status_2">Something</span> </p>
<p>Last Updated: <span class="u_status">Something</span> </p>
</div>
公开的
预览-未启用
某物
广播状态:什么
流状态:某物和某物
最后更新:什么
公开的
预览-未启用
某物
广播状态:什么
流状态:某物和某物
最后更新:什么
那么jQuery可以是:
<script>
$('.video_block').each(function(){
$(this).find('.title_1').text("something else");
$(this).find('.s_status_1').text("something else");
$(this).find('.u_status').text("something else");
});
</script>
$('.video_block')。每个(函数(){
$(this.find('.title_1').text(“其他内容”);
$(this.find('.s_status_1').text(“其他内容”);
$(this.find('.u_status').text(“其他内容”);
});
希望这有帮助。如果您想使用getElementById()
HTML标记必须有一个id,即
请先阅读一些基本的javascript教程。有1000人在等你是的,我已经解决了。对不起,示例中没有。问题在于流状态:{$program->Stream->streamStatus}和{$program->Stream->healthStatus}
。如何选择每一位?如果您想使用querySelector(“#broad”)
,那么必须有一个带有class=“broad”
的标记,再次点击书籍和教程,因此这不是一个学习resource@RiggsFolly正如我上面所说,我还没有把它包括在示例中。我用不同的想法清理了所有的游戏,以显示原始代码。我知道如果代码与HTML不匹配,那么除了说这不可行之外,我们应该如何提供帮助脚本如何知道要处理哪个video\u block
?因为您在最初的问题中没有提到这一点,所以我没有这样回答。是否要指定特定的块?如果是这样的话,在每个块中添加ID,然后你可以通过ID调用它。我(可能是错误的)认为,由于我的原始代码中有一个for循环,并且说我正在监视多个流,这可能是显而易见的。虽然我没有准确地使用你的代码,但它帮助了很多。谢谢
<script>
$('.video_block').each(function(){
$(this).find('.title_1').text("something else");
$(this).find('.s_status_1').text("something else");
$(this).find('.u_status').text("something else");
});
</script>