how to retrieve the data in array with html element access?

H

Harry

Hi Guys
I dont really know how to do this: if there are a page of others,
some data are embedded inside the data array like this:

<script language="JavaScript" type="text/javascript">
<!--
var jsData = new Array();
jsData[0] = {bowl:"I", year:1967, winner:"Packers", winScore:35,
loser:"Chiefs", losScore:10};
jsData[1] = {bowl:"II", year:1968, winner:"Packers", winScore:33,
loser:"Raiders (Oakland)", losScore:14};
jsData[2] = {bowl:"III", year:1969, winner:"Jets", winScore:16,
loser:"Colts (Balto)", losScore:7};
jsData[3] = {bowl:"IV", year:1970, winner:"Chiefs", winScore:23,
loser:"Vikings", losScore:7};
jsData[4] = {bowl:"V", year:1971, winner:"Colts (Balto)", winScore:16,
loser:"Cowboys", losScore:13};
--!>

Now only interested in these data,I want to export it to some format
that i like ,store somewhere else, How can I do this?

I know inside javascript ,you just use it's variable name to access
it ,but how about out side? just like we access html elements by it's
tag name, can we just use some" xpath or DOM way" to access this
array?

especially I'm using ruby(and Hpricot) to process some page content,
now the choice for me is just use some regular expression to deal it
like a dead string, not an array.....really appriciate if someone give
me a hint

thanks !
 
S

SAM

Harry a écrit :
Hi Guys
I dont really know how to do this: if there are a page of others,
some data are embedded inside the data array like this:

<script language="JavaScript" type="text/javascript">
<!--
var jsData = new Array();
jsData[0] = {bowl:"I", year:1967, winner:"Packers", winScore:35,
loser:"Chiefs", losScore:10};
jsData[1] = {bowl:"II", year:1968, winner:"Packers", winScore:33,
loser:"Raiders (Oakland)", losScore:14};
jsData[2] = {bowl:"III", year:1969, winner:"Jets", winScore:16,
loser:"Colts (Balto)", losScore:7};
jsData[3] = {bowl:"IV", year:1970, winner:"Chiefs", winScore:23,
loser:"Vikings", losScore:7};
jsData[4] = {bowl:"V", year:1971, winner:"Colts (Balto)", winScore:16,
loser:"Cowboys", losScore:13};
--!>

Now only interested in these data,I want to export it to some format
that i like ,store somewhere else, How can I do this?

a kind of csv in an hidden field to submit somewhere ?

function xfer() {
var report = document.forms[0].hiddenValues;
for(var i in jsData) {
report.value += i+';';
for(var k in jsData) report.value += jsData[k]+';';
report.value += '\n';
}
// to see what happens
document.getElementById('inf').innerHTML = report.value;
}


<p><button onclick="xfer();">txfer</button></p>
<form action="repport.php">
<input type=hidden name="hiddenValues">
<input type=submit>
</form>
<pre id="inf">
I know inside javascript ,you just use it's variable name to access
it ,but how about out side? just like we access html elements by it's
tag name, can we just use some" xpath or DOM way" to access this
array?

var E = document.forms[0].hiddenValues.value.split('\n');
var txt = '<table border=1>', T='';
for(var i=0, L = E.length; i<L; i++) {
txt += '<tr>';
T = E.split(';');
for(var k=0, S = T.length; k<S; k++)
txt += '<td>'+T[k]+'<\/td>';
txt += '<\/tr>';
}
txt += '<\/table>';
document.getElementById('result').innerHTML = txt;


<div id="result"></div>


or ... :

<script type="text/javascript">
var txt = '<table border=1><tr>';
for(var k in jsData[0]) {
txt += '<th>'+k+'<\/th>';
}
txt += '<\/tr>';
for(var i in jsData) {
txt += '<tr><th>'+i+'<\/th>';
for(var k in jsData) txt += '<td>'+jsData[k]+'<\/td>';
txt += '<\tr>';
}
txt += '<\/table>';
document.write(txt);
</script>
 
T

Thomas 'PointedEars' Lahn

Harry said:
<script language="JavaScript" type="text/javascript">
<!--
var jsData = new Array();
jsData[0] = {bowl:"I", year:1967, winner:"Packers", winScore:35,
loser:"Chiefs", losScore:10};
jsData[1] = {bowl:"II", year:1968, winner:"Packers", winScore:33,
loser:"Raiders (Oakland)", losScore:14};
jsData[2] = {bowl:"III", year:1969, winner:"Jets", winScore:16,
loser:"Colts (Balto)", losScore:7};
jsData[3] = {bowl:"IV", year:1970, winner:"Chiefs", winScore:23,
loser:"Vikings", losScore:7};
jsData[4] = {bowl:"V", year:1971, winner:"Colts (Balto)", winScore:16,
loser:"Cowboys", losScore:13};

var jsData = [
{bowl:"I", year:1967, winner:"Packers", winScore:35, ...},
...
};
--!>
http://validator.w3.org/#validate_by_input+with_options

Now only interested in these data,I want to export it to some format
that i like ,store somewhere else, How can I do this?

I know inside javascript ,you just use it's variable name to access
it ,but how about out side? just like we access html elements by it's
tag name, can we just use some" xpath or DOM way" to access this
array?
No.

especially I'm using ruby(and Hpricot) to process some page content,
now the choice for me is just use some regular expression to deal it
like a dead string, not an array.....really appriciate if someone give
me a hint

Suppose you have control over the content, it would be easier to parse if
you used initializers instead of constructors and several assigning
statements (see above). JSON does this: <http://json.org/>

But if you had control over the content, there would be no need for you to
parse anything as you have the data already available in its raw form (that
was the basis for the generated client-side code).

So ISTM you are asking the wrong question, and, given that you are using
Ruby (and Hpricot, whatever this is), you are probably also asking it in
the wrong place.


PointedEars
 
T

Thomas 'PointedEars' Lahn

Thomas said:
Harry said:
<script language="JavaScript" type="text/javascript">
<!--
var jsData = new Array();
jsData[0] = {bowl:"I", year:1967, winner:"Packers", winScore:35,
loser:"Chiefs", losScore:10};
jsData[1] = {bowl:"II", year:1968, winner:"Packers", winScore:33,
loser:"Raiders (Oakland)", losScore:14};
jsData[2] = {bowl:"III", year:1969, winner:"Jets", winScore:16,
loser:"Colts (Balto)", losScore:7};
jsData[3] = {bowl:"IV", year:1970, winner:"Chiefs", winScore:23,
loser:"Vikings", losScore:7};
jsData[4] = {bowl:"V", year:1971, winner:"Colts (Balto)", winScore:16,
loser:"Cowboys", losScore:13};

var jsData = [
{bowl:"I", year:1967, winner:"Packers", winScore:35, ...},
...
};

Must be

];

of course.


PointedEars
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,186
Latest member
vinaykumar_nevatia

Latest Threads

Top