asp.net+js實(shí)時(shí)奧運(yùn)金牌榜代碼第2/2頁(yè)
更新時(shí)間:2008年09月09日 13:17:14 作者:
運(yùn)期間,公司交給我一個(gè)任務(wù),在公司主頁(yè)上放上奧運(yùn)金牌榜的排名,之前的實(shí)現(xiàn)方式是采用ajax
復(fù)制代碼 代碼如下:
<div id="gold">
<p>截止到9月09日09:46為止,<a target="_blank">北京奧運(yùn)金牌榜</a>前五名如下:</p>
<table id="go" cellpadding="2" cellspacing="0">
<tr><th>名次</th><th>國(guó)家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計(jì)</th></tr>
<tr><td>1</td><td><a target="_blank">中國(guó)</a></td><td>51</td><td>21</td><td>28</td><td>100</td></tr><tr><td>2</td><td><a target="_blank">美國(guó)</a></td><td>36</td><td>38</td><td>36</td><td>110</td></tr><tr><td>3</td><td><a target="_blank">俄羅斯</a></td><td>23</td><td>21</td><td>28</td><td>72</td></tr><tr><td>4</td><td><a target="_blank">英國(guó)</a></td><td>19</td><td>13</td><td>15</td><td>47</td></tr><tr><td>5</td><td><a target="_blank">德國(guó)</a></td><td>16</td><td>10</td><td>15</td><td>41</td></tr>
</table>
</div>
比較下我們要實(shí)現(xiàn)的樣式:(紫紅色部分與上面要偷的數(shù)據(jù)對(duì)應(yīng))

實(shí)現(xiàn)步驟如下:
1、先讀取整個(gè)頁(yè)面的html代碼:
復(fù)制代碼 代碼如下:
//用來(lái)存放接受到的每一行數(shù)據(jù)
string content = "";
//接受到的是字節(jié)流
Stream str;
//提供向URI標(biāo)識(shí)的資源發(fā)送數(shù)據(jù)和從URI標(biāo)識(shí)的資源接受數(shù)據(jù)的公共方法
WebClient web = new WebClient();
//從指定的URI中下載數(shù)據(jù)并打開流
str = web.OpenRead("http://www.baidu.com/s?wd=%B0%C2%D4%CB%BD%F0%C5%C6%B0%F1&lm=0&si=&rn=10&ie=gb2312&ct=0&cl=3&f=1&rsp=0");
//以GB2312編碼從字節(jié)流中讀取數(shù)據(jù)
StreamReader sr = new StreamReader(str, Encoding.GetEncoding("GB2312"));
//把數(shù)據(jù)全部讀出來(lái)
content = sr.ReadToEnd();
2、對(duì)其進(jìn)行過(guò)濾和替換只提取我們需要的部分,這部分我正則不行,寫得有點(diǎn)亂:
復(fù)制代碼 代碼如下:
Regex r = new Regex(@"<tr><th>名次</th><th>國(guó)家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計(jì)</th></tr>[\s\S]+?</table>");
Match m = r.Match(content); //匹配字符串
GroupCollection gc = m.Groups;
Regex rb = new Regex("</?(a|A)( .*?>|>)");
string soutput = rb.Replace(gc[0].ToString(), "");
soutput = soutput.Replace("<tr><th>名次</th><th>國(guó)家及地區(qū)</th><th>金牌</th><th>銀牌</th><th>銅牌</th><th>總計(jì)</th></tr>", "");
soutput = soutput.Replace("</table>","");
Regex rc = new Regex("<td>[1,2,3,4,5]</td>");
soutput = rc.Replace(soutput,"");
3、這樣樣式比較難控制,水平也有限,只用JS實(shí)現(xiàn)了。
復(fù)制代碼 代碼如下:
<script type ="text/javascript">
window.onload = function(){
var tr_ = document.getElementById("myTable").getElementsByTagName("tr");
var td_;
for(var i = 0;i < tr_.length; i ++){
tr_[i].style.backgroundColor = i%2==0?"#FFF4C7":"#FEEAAE";
if(i > 0){
td_ = tr_[i].getElementsByTagName("td")[0].style.textAlign = "center";
}
if(i == 4){
tr_[4].style.display = "none";
}
}
//第一個(gè)單元格居中
}
</script>
相關(guān)文章
ASP.NET開發(fā)者使用jQuery應(yīng)該了解的幾件事情
如果你是有著APS.NET開發(fā)背景的人員,那么jQuery的幾個(gè)概念建議你應(yīng)該忘掉。像使用其它的framework一樣,你應(yīng)該學(xué)習(xí)一下jQuery的所有語(yǔ)法等約定來(lái)讓它更好的為你服務(wù)。2009-09-09
Discuz!NT 3與asp.net 整合的實(shí)例教程
本次整合只針對(duì)NETSNS中的代碼做了少許修改,完成了基本的和論壇同步注冊(cè),登陸和注銷,信息獲取,信息修改。為的是給各位Discuz!NT API愛(ài)好者做一個(gè)簡(jiǎn)單的API事例,供大家參考。2009-11-11
.Net 調(diào)用存儲(chǔ)過(guò)程取到return的返回值
存儲(chǔ)過(guò)程只能返回 int 類型,如果返回一個(gè)字符串 ,將會(huì)報(bào)類型轉(zhuǎn)化錯(cuò)誤,下面以示例介紹下如何取到return的值,需要的朋友可以參考下2014-08-08
理解ASP.NET?Core?錯(cuò)誤處理機(jī)制(Handle?Errors)
這篇文章主要介紹了理解ASP.NET?Core?錯(cuò)誤處理(Handle?Errors)?,在這里需要注意的是,與“異常處理”有關(guān)的中間件,一定要盡早添加,這樣,它可以最大限度的捕獲后續(xù)中間件拋出的未處理異常。感興趣的朋友跟隨小編一起看看吧2021-11-11
ASP.NET WebForm中<%=%>與<%#%>的區(qū)別
這篇文章主要介紹了ASP.NET WebForm中<%=%>與<%#%>的區(qū)別,需要的朋友可以參考下2015-01-01
ASP.NET中的URL過(guò)濾實(shí)現(xiàn)代碼
最近做的一個(gè)Web項(xiàng)目需要對(duì)URL進(jìn)行過(guò)濾,在網(wǎng)上搜了一下,知道J2EE有個(gè)Filter的東西,而在.NET方面,其實(shí)也可以實(shí)現(xiàn)2013-01-01

