2013-01-22 23 views
0

我是新來的JS,並且遇到了我的腳本問題。 我想在員工的網絡資歷日期上顯示。 這是我的JS代碼來計算它。如何將信息從html導入到javascript

var dateObj1 = new Date('1992/07/07 18:00:00'); 
var dateObj2 = new Date(); 

//get difference in milliseconds 
var diffMilliseconds = dateObj1.getTime() - dateObj2.getTime(); 

//make the difference positive 
if(diffMilliseconds < 0) diffMilliseconds *= -1; 

//convert milliseconds to hours 
var diffYears = (diffMilliseconds/1000)/60/60/24/365; 

//print on console 
var num = diffYears; 
num = Math.floor(num); 

if (num > 1) 
{ 
document.write(num + ' years'); 
} 
else if (num < 1) 
{ 
document.write('less than one year'); 
} 
else 
{ 
document.write(num + ' year'); 
} 

將有大約45-50 eployees和,而不是創建50個js文件要定義HTML就業日期var dateObj1 = new Date('1992/07/07 18:00:00');但真的不知道該怎麼做。

有人可能會發布HTML代碼的一部分被使用和部分JS必須被改變。

謝謝。

+0

我認爲,谷歌的電子表格會更容易創建。 –

+1

不完全確定你的問題在問什麼 - 1992/07/07 18:00:00是固定的日期常數還是每個員工有不同的日期?如果只是這樣做45-50次,for循環就足夠了。你想要做什麼以及背後的理由是什麼? – aug

+1

[使用'[data - *]'屬性傳遞與DOM元素相關的數據; jquery使這個簡單](http://stackoverflow.com/questions/7261619/jquery-data-vs-attr)。 – zzzzBov

回答

0

您可以創建一個包含員工姓名及其指定日期的Map(對象)。然後你採取邏輯你計算剩下多少時間(然後顯示它),並把它放在一個循環中。對於地圖中的每位員工,計算該號碼然後打印。

0

通過將你的代碼放在一個函數中,並通過它傳遞來自HTML的數據,它應該產生一些好的結果。

HTML

<table> 
    <thead> 
     <tr> 
      <td>Name</td> 
      <td>Startdate</td> 
      <td>Date in years</td> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>Employee #1</td> 
      <td>1992/07/07 18:00:00</td> 
     </tr> 
     <!-- More employees --> 
    </tbody> 
</table> 

的JavaScript

var rows = document.querySelectorAll("tbody tr"); // Get all the rows 

for(var i = 0; i < rows.length; i++) { 
    // For each row, get the start date 
    var startdate = rows[i].cells[1].innerText, 
     years = calculateYears(startdate); 

    // Create a DOM element with the result, and add it to the table 
    var td = document.createElement("td"), 
     result = document.createTextNode(years); 
    td.appendChild(result); 
    rows[i].appendChild(td); 
} 

// Years calculation 
function calculateYears(startdate) { 
    // Your function, slightly modified 
} 

Here's the result!