2

我的大学提供成绩卡,这真的很混乱,计算最终结果真的很困难。因为所有科目的期末考试权重不同。

我正在开发一个 BCA 结果计算器。这是这个https://www.bobdn.com/IGNOU_BCA_Result.aspx

我在 div 中有以下代码(我无法更改它,因为它是从大学网站返回的)

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>Grade Card</TITLE>
<h1> Grade Card </h1>
<h1>&nbsp;</h1>
(All programs Except for BIT/ADIT)

</HEAD>
<BODY  bgcolor=Lavender>


<form name=FRMResult method=post action=Result.asp>
<center> <font size=+2> Indira Gandhi National Open University </font>
 <br> Grade Card Status as on May 09, 2012<br> (For information only)</center>
 Enrolment Number: 092853268<br> Name: SHASHWAT TRIPATHI<br> Program: BCA<p><font size=-1> The Status is indicative only & cannot be used as a substitute for the final grade card which is sent by SRE at the end of a semester.</font><br><table border=1 width='80%' background='ignou.gif'><tr><td width='10%'>  Course Code </td><td width='10%' align=center>  Asgn1 </td><td width='10%' align=center>  Asgn2 </td><td  width='10%' align=center>  Asgn3 </td><td  width='10%' align=center>  Asgn4 </td><td  width='10%'>  Term End Theory </td><td  width='10%'>  Term End Practical</td><td width='10%'>  Status </td></tr><tr><td width='5%' >BCS61</td><td width='10%' >80</td><td width='10%' >73</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%' >67</td><td width='20%' >Completed</td></tr><tr><td width='5%' >BSHF1</td><td width='10%' >35</td><td width='10%' >35</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >41</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS5</td><td width='10%' >80</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS6</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >59</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS60</td><td width='10%' >90</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >53</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS610</td><td width='10%' >60</td><td width='10%' >60</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS611</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >52</td><td width='10%' >88</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS612</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >70</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS62</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%' >91</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS63</td><td width='10%' >90</td><td width='10%' >93</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >48</td><td width='10%' >85</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS64</td><td width='10%' >59</td><td width='10%' >59</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >40</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS65</td><td width='10%' >50</td><td width='10%' >53</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >97</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS66</td><td width='10%' >80</td><td width='10%' >80</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >57</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS67</td><td width='10%' >83</td><td width='10%' >83</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >93</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS68</td><td width='10%' >63</td><td width='10%' >63</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >62</td><td width='10%' >77</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS70</td><td width='10%' >70</td><td width='10%' >67</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >45</td><td width='10%'>-</td><td width='20%' >Completed</td></tr><tr><td width='5%' >CS71</td><td width='10%' >90</td><td width='10%' >87</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%'>-</td><td width='20%' >Not Completed</td></tr><tr><td width='5%' >FST1</td><td width='10%' >66</td><td width='10%' >66</td><td width='10%' >-</td><td width='10%' >-</td><td width='10%' >73</td><td width='10%'>-</td><td width='20%' >Completed</td></tr></table><br/><font size=-1 >Not with standing the result published/declared, any case of UFM(Unfairmeans) if found will make such result null and void.</font><p>&nbsp;</p><u>Note:- Assignment 4 and TE Practical do not apply to all the courses.</u><font size=-1 color=blue><center>Disclaimer: This electronically generated information does not have any legal validity</font></center>
<P>&nbsp;</P>



<a href="javascript:history.back()">Back </a>

<!--#'include file=scroll.js-->

</BODY>
</HTML>

假设我把这段代码放在一个带有 ID 的 div 中,tempDiv 现在我如何从tempDiv

此外,这里是一个jsFiddle,它显示了来自大学的 HTML 的相关部分。

4

3 回答 3

2

假设您的 html 将保持不变...您可以使用以下代码

var z = $('form').html();    //grab the html
var za = z.split('<br>',4);  //split using <br> tags
var name = za[3];            //the element which has the name

var purename = name.replace('Name: ','');  //replace 'Name: ' with space to get pure name
alert(purename);​ //alert it

如果 IGNOU 更改了 html,你将不得不再次编辑它。

JSFiddle 示例

于 2012-05-15T07:03:54.983 回答
1

这可能有效:

function getNameProgram(){

   var strTotal=document.getElementById('tempDiv').innerHTML;
   var ind1=strTotal.indexOf('Name');
   var ind2=strTotal.indexOf('Program');
   var ind3=strTotal.indexOf('<P><FONT size=-1>');
   var strName=strTotal.substring(ind1,ind2);
   var strProgram=strTotal.substring(ind2,ind3);
   strName=$.trim(strName.replace('Name:','').replace('<BR>',''));
   strProgram=$.trim(strProgram.replace('Program:',''));

   alert('MYNAME:'+ strName + '\n' + 'MYPROGRAM:' + strProgram  );

}
于 2012-05-15T06:27:29.800 回答
1

此答案假定您已经从远程服务器检索了 HTML 并将其加载到您的 HTML 页面上。一旦进入您的页面并在 DOM 的上下文中,以下代码将从 HTML 中检索名称:

var form = $('form').text();
var nameIndex = form.indexOf("Name: ");
//alert(i);
alert(form.substring(134 + 5));   // prints the name

有关演示,请参见http://jsfiddle.net/bsBCR/2/ 。

需要注意的是,许多系统都有 API,您可以使用这些 API 更轻松地从系统中检索数据。API 就像您的应用程序和第三方应用程序之间的合同,如果第三方承诺不更改该 URL 的“方法签名”,您将使用相同的 URL 来检索数据。

在检索和解析 RAW HTML 时,没有契约。用简单的英语来说,如果大学改变了那个 HTML 的结构,你的申请就会崩溃。准备好将其添加为风险,并在未来有必要时制定解决该问题的策略。

于 2012-05-15T06:32:41.823 回答