Saturday, May 11, 2024
 Popular · Latest · Hot · Upcoming
56
rated 0 times [  63] [ 7]  / answers: 1 / hits: 20694  / 11 Years ago, thu, april 11, 2013, 12:00:00

HTML



<table id=table>
<tr>
<td>1999.09-2007.06</td>
<td> Secondary School </td>
</tr>
<tr>
<td>2007.09-2011.06</td>
<td> College </td>
</tr>
<tr>
<td>2011.09-2015.06</td>
<td> University</td>
</tr>
</table>


<form autocomplete=on>
<p/>
<label>Year</label>
<input type=text id=year name=year autofocus/>
<p/>
<label>Month</label>
<input type=text name=month id=month />
<p/>
</form>
<input type=button onClick=method() />


JavaScript



function method(){
var year = document.getElementById(year).value;
var month = document.getElementById(month).value;
var data = new Date(year,month-1,1);
var dataTable = document.getElementById(table);
var cells = dataTable.querySelectorAll(td);
var cells2 = dataTable.querySelectorAll(td+td);

for (var i = 0; i < cells.length; i++){
var mikro = cells[i].firstChild.data.split(-);
var place = cells2[i].firstChild.data;
var firstData = mikro[0].split(.);
var secondData = mikro[1].split(.);
var data1 = new Date(firstData[0],firstData[1]-1,1);
var data2 = new Date(secondData[0],secondData[1]-1,1);
if(data1<=data && data2>=data){
alert(place);
}
}
}


Here i have 2 columns in the table, i want to create script which will help me to find information from it: I have <input type=text id=year name=year autofocus/> and <input type=text name=month id=month /> where i can enter year & month.After entering year&month i have to get information from the 2nd column according to the dates on the 1st column for example: Input year: 2002, Input month:05 - result must be 'Secondary School' because it between 1999.09-2007.06 . I can't see what is wrong with my script, it always give me false information.


More From » html

 Answers
68

Try this (jsfiddle), increment the cell index by 2 each time, and use the simpler td selector:



function method () {
var year = document.getElementById(year).value;
var month = document.getElementById(month).value;
var data = new Date(year, month - 1, 1);
var dataTable = document.getElementById(table);
var cells = dataTable.querySelectorAll(td);

for (var i = 0; i < cells.length; i+=2) {
var mikro = cells[i].firstChild.data.split(-);
var place = cells[i+1].firstChild.data;
console.log(mikro, place);
var yearMonth1 = mikro[0].split(.);
var yearMonth2 = mikro[1].split(.);
var data1 = new Date(yearMonth1[0], yearMonth1[1] - 1, 1);
var data2 = new Date(yearMonth2[0], yearMonth2[1] - 1, 1);
if (data1 <= data && data2 >= data) {
alert(place);
}
}
}

[#78962] Wednesday, April 10, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
stefanicarolinat

Total Points: 145
Total Questions: 91
Total Answers: 93

Location: Cambodia
Member since Thu, Oct 7, 2021
3 Years ago
stefanicarolinat questions
Mon, Nov 15, 21, 00:00, 3 Years ago
Fri, Apr 16, 21, 00:00, 3 Years ago
Thu, Oct 15, 20, 00:00, 4 Years ago
Fri, Jul 17, 20, 00:00, 4 Years ago
;