[英]innerHTML refresh using jQuery
我使用innerHTML代码删除了该XML文档中DIV内容文件中的信息,我找到了jQuery代码并决定使用它,但是我无法通过该代码更新DIV。 我正在使用的页面链接是此http://radiojoven.6te.net/noar.php
我离开了我正在使用的更多javascript函数。
//http://code.google.com/p/miniajax/
function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
ajax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
ajax.send=function(u,f,m,a){var x=ajax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
ajax.get=function(url,func){ajax.send(url,func,'GET')};
ajax.gets=function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText};
ajax.post=function(url,func,args){ajax.send(url,func,'POST',args)};
ajax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.get(url,f)};
ajax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};ajax.post(url,f,ajax.serialize(frm))};
function process(xml) {
document.getElementById('contentfile').innerHTML=xml;
var title = document.getElementById('contentfile').getElementsByTagName('song')[0].title;
var name = document.getElementById('contentfile').getElementsByTagName('Artist')[0].getAttribute('name');
document.getElementById('contentfile').innerHTML=' '+name+' // ' +title;
}
function checkXml() {
ajax.get('/NowOnAir.xml',process)
}
window.onload=function() {
checkXml();
tId=setInterval('checkXml()',speed)
}
window.setInterval("refreshDiv()", 20000);
function refreshDiv()
{
document.getElementById('contentfile').innerHTML=' '+name+' // ' +title;
}
快速摘要:您的页面生成2个javascript运行时错误:
问题的根源在于您尝试执行以下操作:
function test() {
a += 1;
}
当您必须执行以下操作时:
var a = 0; // a in global scope
function test() {
a += 1;
}
要么
function test() {
var a = 0; // a is now local scope
a += 1;
}
我认为你应该删除
<script>
window.setInterval("refreshDiv()", 20000);
function refreshDiv()
{
document.getElementById('contentfile').innerHTML=' '+name+' // ' +title;
}
</script>
因为它似乎在复制此代码的功能:
function process(xml) {
document.getElementById('contentfile').innerHTML=xml;
var title = document.getElementById('contentfile').getElementsByTagName('song')[0].title;
var name = document.getElementById('contentfile').getElementsByTagName('Artist')[0].getAttribute('name');
document.getElementById('contentfile').innerHTML=' '+name+' // ' +title;
}
function checkXml() {
ajax.get('/NowOnAir.xml',process)
}
window.onload=function() {
checkXml();
tId=setInterval('checkXml()',speed)
}
为了
window.onload=function() {
checkXml();
tId=setInterval('checkXml()',speed)
}
工作正常-您必须定义速度变量。 要定义它-您可以添加
var speed = 20000;
到脚本的开头。 也许在这里:
<script>
var speed = 20000;
//http://code.google.com/p/miniajax/
这应该工作。 感谢您为您的代码提供链接-比单词^ _ ^更具表达力。 抱怨这个问题很有趣,即使这个答案使我付出了-4 rep ^ ^
一切都一样,但是您应该加载jquery库-在其他任何<script>之前添加类似的内容:
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
(更多选项,请参见http://jquery.com/download/ )
现在,您可以使用jQuery的所有功能。 要正确使用jQuery,您应该学习文档。 为了给您带来品味-这是最简单,最实用的更新,它是重写函数的过程 :
function process(xml) {
$('#contentfile').html( xml );
var title = $('#contentfile').find('song').first().attr('title');
var name = $('#contentfile').find('Artist').first().attr('name');
$('#contentfile').html( ' '+name+' // ' +title );
}
也许您可以重写ajax以将jQuery方法用于ajax。 但我看不出原因-如果当前版本的Ajax正常就可以了。 如果您仍然想要-那么您应该在这里查看: http : //api.jquery.com/jQuery.ajax/
还有其他在jQuery中使用ajax的功能-使用适合您的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.