2014-12-11 2 views
0

자바 스크립트 funktion에 배열이 있습니다.배열 매개 변수로 javascript 함수 호출

var data = ['Datum','Schicht','Schicht','Schicht','Dispo','Schicht','Schicht','Schicht','Schicht','Schicht','Schicht','Dispo']; 

이 배열은 html 테이블에 여러 번 표시됩니다. 값은 결국 함수가되어야합니다. 지금은 모두 단지 자리 표시 자입니다. 내가 원하는 것은 그것들을 함수로 설정하는 것이다. 그래서 나는 data [0]을 사용할 때 'date();'함수를 호출한다. 현재 날짜를 알려줍니다. 함수 'Schicht();' 위에 표시된 자리 표시 자에서 호출해야합니다.

편집 :

어쩌면 내가 더 많은 정보를 게시해야합니다. 그래서 배열은 내가 생성하는 html 테이블에 저장됩니다.

function tableCreate(){ 
     var header = ['Datum','VoMi +D','Vo + NaMi','NaMi I','NaMi Dispo','Abend I/a','Abend I/b','Abend II','Abend III','Abend IV','Abend V','Abend Dispo']; 
     var data = ['Datum','Schicht','Schicht','Schicht','Dispo','Schicht','Schicht','Schicht','Schicht','Schicht','Schicht','Dispo']; 

     var html = '<table><thead><tr>'; 
     for (var x=0; x < 12; ++x){ 
      html += '<th>' + header[x] + '</th>'; 
     } 
     html += '</tr></thead><tbody>'; 
     for (var i = 0; i < 28; ++i) { 
      html += '<tr>'; 
      for (var j = 0; j < 12; ++j) { 
       //var func = windows[data[j]]; 
       html += '<td>' + [data[j] + '</td>'; 
      } 
      html += "</tr>"; 
     } 
     html += '</tbody></table>'; 

     $(html).appendTo('#tabs1-schicht'); 
    } 

내가 전화하려고 예를 들어, 날짜 기능은 다음과 같습니다

var date = function date(){ 
     var today = new Date(); 
     var dd = today.getDate(); 
     var mm = today.getMonth()+1; //January is 0! 
     var yyyy = today.getFullYear(); 

     if(dd<10) { 
      dd='0'+dd 
     } 
     if(mm<10) { 
      mm='0'+mm 
     } 

     today = dd+'.'+mm+'.'+yyyy; 
     console.write(today); 
    } 
+1

: 당신은 다른 방법이

var Datum = function(args){ bla bla... } var data = ['Datum','Schicht','Schicht','Schicht','Dispo','Schicht','Schicht','Schicht','Schicht','Schicht','Schicht','Dispo']; eval(data[0] + "(arguments)"); 

입니다

var Datum = function(args){ bla bla.. } var data = ['Datum','Schicht','Schicht','Schicht','Dispo','Schicht','Schicht','Schicht','Schicht','Schicht','Schicht','Dispo']; var func = window[data[0]]; func(arguments); 

처럼 사용하거나 직접 같은 배열에 기능을 추가 할 수 있습니다 Datum'? 그리고'디스포 '는 어쩌고? – Bergi

+0

다음과 같이 string이라는 이름의 함수를 실행할 수 있습니다. –

+0

@Bergi Datum은 단지 자리 표시 자 atm입니다. Dispo는 같은 생각입니다. 함수를 호출해야합니다. 네 메사 리라면 데이텀을 다른 것으로 바꿀 수 있습니다. – CuChulla1nn

답변

0

------- 답변 귀하의 편집 -------- AFTER

함수 date이 값을 반환하지 않습니다. 이 버전을 시도해보십시오

var date = function(){ 
     var today = new Date(), 
      dd = today.getDate(), 
      mm = today.getMonth()+1, //January is 0! 
      yyyy = today.getFullYear(); 

    if(dd<10) { 
     dd='0'+dd 
    } 
    if(mm<10) { 
     mm='0'+mm 
    } 

    today = dd+'.'+mm+'.'+yyyy; 
    if(console.log) console.log(today); 
    return today; 
} 

지금이

function test(){ 
    var data = []; 
    data.push(date); 

    var html = "<table><tr><td>" + data[0]() + "</td></tr></table>"; 
    if(console.log)console.log(html); // in chorme 
} 
test(); 
+0

나는 당신의 버전을 시험해 보았습니다. 그러나 나는 아무 결과도 얻지 않는다. 그것을 실행할 때 블랑 스크린 만 있습니다. – CuChulla1nn

+0

console.log는 크롬에서 작동합니다. 'alert ('hello world');'또는 그와 비슷한 것으로'console.log'를 변경하십시오. 당신은'test' 함수를 콜링하고 있습니까 – sabotero

0

나는 당신의 질문 How to execute a JavaScript function when I have its name as a string과 관련이 있다고 생각 작동합니다. 어떻게 문자열`에서`date`을받을 수 있나요

var Datum = function(){}; 
var Schicht = function(){}; 

var Data = [Datum, Schicht ...]; 
Data[0](); 
+0

당신의 링크를 읽고 당신의 제안을 시도했습니다. 필자의 기능이 텍스트로 표시 될 때까지 알았습니다. 하지만 오늘 var 함수를 date()에서 출력하려고하면 출력이 사라졌습니다. – CuChulla1nn

+0

안녕하세요 jsfiddle 예제를 추가했습니다. http://jsfiddle.net/LfuLjr90/ – caslaner

+0

두 번째 예 http://jsfiddle.net/0ekrfmnq/ – caslaner

관련 문제