js输出到html

我用ajax取得数据,这是回调函数
function responseFunction(contextData)
{
var errorMessage = contextData.getValueAt("errorMessage");
if(errorMessage == null)
{
vote = contextData.getValueAt("vote");
var iColl = contextData.getElement("voteIcoll");

var kColl = iColl.getElementAt(0);
var vote = kColl.get("vote");

alert(vote);

updatePageInfo();
}
else
{
alert(errorMessage);
}

}
我用alert可以输出那些数,不知道怎么把它写到页面上对应的位置去,页面是用for循环输出的,然后在每个里边都调用一次js获取票数,只需要把vote输出到插入js的地方就可以了,可是我用document.write写的话整个页面就显示那一个数,然后报js错误,不知道为啥,急等回答啊

其实直接是放到DOM的value,或是innerHTML里面。

下面是简单的代码,仅供参考:

<body>
<div style="width:100px; height:100px; border:1px solid #ccc;"></div>
</body>
<script type="text/javascript">
var oDiv = document.getElementsByTagName('div')[0];
var arr = [1,2,3,4,5,6,7,8,94,1,3,4,5,6];
oDiv.onclick=function(){
oDiv.innerHTML = arr[Math.floor(Math.random()*arr.length)];
};
</script>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-03
给要显示的区域一个id,然后:
document.getElementById("给的id").innerHTML=要写入的内容;追问

没别的办法么,那id是动态的,不知道怎么传进来

追答

id怎么会是动态的呢?把你HTML正文中显示这些结果的区域贴出来看一下。

追问

投票?[">showVote(); 票]
showVote()就是发送ajax请求到servlet,返回xml,从中得到vote

追答

你的showVote函数的参数就是id啊,直接调用这个参数不就行了。
showVote("");
function showVote(theid){document.getElementById(theid).innerHTML=要写入的内容; }

追问

function showVote(id)
{
var url = 'ShowVoteServlet';
var params = 'id='+id;
sendAjaxRequest('POST',url,params,responseFunction);
}是用来发送ajax请求的啊

追答

不好意思,我弄错了。把alert(vote);改成:
document.getElementById("").innerHTML=vote;
另外,你把发请求的代码写在这个位置,实在有点奇怪,这样写,仅仅在页面第一次加载的时候执行这段代码。但你既然是做ajax,应该是把这个绑定到某个事件啊。

追问

我试试去,我准备点投票的时候再调用一下这个函数啊。不好使,是在for循环里创建的,每个whb是不一样的啊

本回答被提问者采纳
第2个回答  2011-08-03
为什么要使用document.write?本质也就是不断输出内容
你可以写一个容器,不断输入内容,不过每次输入的内容 都是这一次的内容 加上 上一次内容即可。

那么这样子做,就必须使用一个变量保存 上一次的内容。
问题解决。
第3个回答  2011-08-03
应该是你调用JS顺序的问题,而且显示出来的信息也是通过后台读取的方式。
你在用write的时候,页面上应该并没有相应的DOM。(还在读取中...)
建议你在完成load的时候再去做赋值试下。追问

怎么完成后再赋值啊。。js不咋会。。

第4个回答  2011-08-05
把页面上的文本框定义进来
var text=$("#textId").val();
text=vote;