使用ajax技术无刷新动态调用股票信息(改良版)

今日闲来无事,把上次写的代码稍微改了改。增加了动态追加和删除股票信息的功能(代码基于jquery运行:http://jquery.com/) 。由于对Ajax技术的认识还只是在初级阶段,总觉得这么些有点别扭,希望大虾能够指点一二。

< html >
< head >
    
< title > ajax test </ title >
    
< meta  http-equiv ="Content-Type"  content ="text/html; charset=UTF-8"   />
    
< script  type ="text/javascript"  src ="jquery.js" ></ script >
    
< script  type ="text/javascript" >
    
function ajaxRequest(){
        
var url = $("#stockurl").val() + $("#stockinit").val();
        $.ajax(
{
            url: url,
            type: 
'GET',
            dataType: 
'html',
            timeout: 
2000,
            success: 
function(response){
                
var stocks = response.split(';');
                
for(var i=0; i<stocks.length-1; i++){                    
                    
var content = stocks[i];
                    
var temp1 = content.split('=')[0];
                    
var temp2 = content.split('=')[1];
                    
var code = temp1.substr(temp1.length - 66);
                    
var temp3 = temp2.replace('"''');
                    
var name = temp3.split(',')[0];
                    
var tday_f = temp3.split(',')[1];
                    
var yest_f = temp3.split(',')[2];
                    
var curr_f = temp3.split(',')[3];
                    
var temp_f = curr_f - yest_f;
        
                    $(
'#a'+i).html(code);
                    $(
'#b'+i).html(name);
                    
if(curr_f > yest_f) {
                        $(
'#c'+i).html("<font color='red'>" + curr_f + "</font>");
                    }
 else if(curr_f < yest_f) {
                        $(
'#c'+i).html("<font color='green'>" + curr_f + "</font>");
                    }
 else {
                        $(
'#c'+i).html(curr_f);
                    }

                    $(
'#d'+i).html(tday_f);
                    $(
'#e'+i).html(yest_f);
                    
if(temp_f > 0{
                        $(
'#f'+i).html("<font color='red'>" + temp_f.toFixed(2+ "</font>");
                        $(
'#g'+i).html("<font color='red'>" + ((temp_f / yest_f) * 100).toFixed(2+ "</font> % ");
                    }
 else if(temp_f < 0{
                        $(
'#f'+i).html("<font color='green'>" + temp_f.toFixed(2+ "</font>");
                        $(
'#g'+i).html("<font color='green'>" + ((temp_f / yest_f) * 100).toFixed(2+ "</font> % ");
                    }
 else {
                        $(
'#f'+i).html(temp_f.toFixed(2));
                        $(
'#g'+i).html(((temp_f / yest_f) * 100).toFixed(2+ " % ");
                    }

                    $(
'#h'+i).html(temp3.split(',')[4]);
                    $(
'#i'+i).html(temp3.split(',')[5]);
                }

            }

        }
);
    }


    $(document).ready(
function(){
    
        
var stocks = $("#stockinit").val().split(',');
        
for(var i=0; i<stocks.length; i++){
            addRows();
        }

        
        $(
"#insrow").click(function(){
        
            
var stockcd = $("#stockid").val();
            
if(stockcd == ""){
                alert(
"股票代号不能为空!");
                $(
"#stockid").focus();
                
return;
            }

            
if(stockcd.length != 6){
                alert(
"股票代号只能是6位!");
                $(
"#stockid").focus();
                
return;
            }

            
var div = 'sh';
            
if(document.getElementById("sz_id").checked){ div = "sz";}
            
var stocks = $("#stockinit").val();
            $(
"#stockinit").val(stocks + "," + div + stockcd);
            addRows();

        }
);
        
        $(
"#delrow").click(function(){
            
var table = document.getElementById("tableId");
            
var index = table.rows.length;
            
if (index < 2){
                alert(
"已经没有可删除的行了!");
            }
 else {
                table.deleteRow(index 
- 1);
                
var stockvalue = $("#stockinit").val();
                
var count = stockvalue.split(',').length;
                
if(count == 1{
                    stockvalue 
= "";
                }
 else {
                    stockvalue 
= stockvalue.substr(0, stockvalue.length - 9);
                }

                $(
"#stockinit").val(stockvalue);
            }

        }
);
        
        window.setInterval(
"ajaxRequest()",3000); 
    }
);
    
    
function addRows(){
        
var table = document.getElementById("tableId");
        
var index = table.rows.length;
        
var str="";
        
var row = index - 1;
        str
+='<tr class="tr_cls">'
        str
+='<td align="center"><span id="' + "a" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "b" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "c" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "d" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "e" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "f" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "g" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "h" + row + '"></span></td>'
        str
+='<td align="center"><span id="' + "i" + row + '"></span></td>'
        str
+='</tr>';
        $(
"#tablebody").append(str);
    }

    
</ script >
    
< style >
    .tr_cls 
{
        height
:30px;
        font-size
:16px;
        font-family
:"Times New Roman", Times, serif;
        background-color
:#FFFFCC
    
}

    
</ style >
</ head >
< body >
    
< form >
        
< input  type ="hidden"  id ="stockurl"  value ="http://hq.sinajs.cn/list="   />
        
< input  type ="hidden"  id ="stockinit"  value ="sh000001,sz399001,sh601939,sh600016,sh600528,sh600667,sh601390,sh601857,sz000532,sh600019,sh601111,sh601600,sh601006,sh601333,sh601398,sh601988,sh601328"   />
        
< table  width ="800"  border ="0"  align ="center"  cellpadding ="0"  cellspacing ="0"   >
            
< tr >
                
< td  width ="115px" >
                    代号:
< input  type ="text"  id ="stockid"  size ="6" >
                
</ td >
                
< td  width ="150px" >
                    区分:上海
< input  type ="radio"  name ="rad"  id ="sh_id"  checked > 深证 < input  type ="radio"  name ="rad"  id ="sz_id" >
                
</ td >
                
< td  width ="40px" >
                    
< input  type ="button"  id ="insrow"  value ="行追加" >
                
</ td >
                
< td  width ="495px" >
                    
< input  type ="button"  id ="delrow"  value ="行削除" >
                
</ td >
            
</ tr >
            
< tr >
                
< td  colspan ="4" >
                    
< div  style ="overflow-y:scroll; overflow-x:auto; height:392px; width:817px" >
                        
< table  id ="tableId"  width ="800"  border ="1"  align ="center"  cellpadding ="0"  cellspacing ="0"  bordercolor ="#000000" >
                            
< tr  bgcolor ="#3399FF"  height ="30px" >
                                
< th  scope ="col" > 股票代号 </ th >
                                
< th  scope ="col" > 股票名称 </ th >
                                
< th  scope ="col" > 当前价格 </ th >
                                
< th  scope ="col" > 今日开盘 </ th >
                                
< th  scope ="col" > 昨日收盘 </ th >
                                
< th  scope ="col" > 当前差价 </ th >
                                
< th  scope ="col" > 涨跌幅度 </ th >
                                
< th  scope ="col" > 最高价格 </ th >
                                
< th  scope ="col" > 最低价格 </ th >
                            
</ tr >
                            
< tbody  id ="tablebody" >
                            
</ tbody >
                        
</ table >     
                    
</ div >
                
</ td >
            
</ tr >
        
</ table >
    
</ form >
</ body >
</ html >

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值