2016-05-31 23 views
0

Ich erstelle dynamische Akkordeon-Elemente mit einer Tabelle innerhalb des Akkordeon-Inhalts. Ich muss Text dynamisch über Variablen setzen, die an die Funktion übergeben werden.Elemente Attribute dynamisch hinzufügen

My Code:

function addAcc(marking, freq) { 
    var newID = marking; 

    var newTable = '<div id="startID"> \ 
        <h3>\ 
        </h3> \ 
        <table class="tg" style="width: 100%; height: 100%;padding: 0 0 0 0; margin: 0 0 0 0;background-color: #A0A6AB"> \ 
        <tr> \ 
        <th id="frequency"></th> \ 
        <th></th> \ 
        <th></th> \ 
        <th></th> \ 
        </tr> \ 
        </table> \ 
        </div>'; 

    $('.emitters').append(newTable) 
    $('.emitters').accordion("refresh"); 
    $('#startID').attr('id',newID); 
} 

Zum Beispiel muss ich mit einem Text-Wert der Variable freq empfangen das Element Frequenz einzustellen, wenn die Funktion aufgerufen wird. Ein weiteres Problem besteht darin, die div-Haupt-ID dynamisch mit der Markierungszeichenfolge festzulegen, die an die Funktion übergeben wird. Wie können diese gesetzt werden, wenn der HTML-Code eine Javascript-Variable ist?

Antwort

1

Können Sie bitte Ihre Funktion mit folgendem Code ersetzen lassen Ausgang erwartet

function addAcc(marking, freq) { 
var newID = marking; 

var newTable = '<div id="'+marking+'"> \ 
       <h3>\ 
       </h3> \ 
       <table class="tg" style="width: 100%; height: 100%;padding: 0 0 0 0; margin: 0 0 0 0;background-color: #A0A6AB"> \ 
       <caption>'+freq+'</caption>\ 
       <tr> \ 
       <th id="frequency"></th> \ 
       <th></th> \ 
       <th></th> \ 
       <th></th> \ 
       </tr> \ 
       </table> \ 
       </div>'; 

$('.emitters').append(newTable) 
$('.emitters').accordion("refresh"); 
$('#startID').attr('id',newID); 

}

1

Sie können die Zeichenfolgen verketten, um Variablen für Ihren HTML-Code festzulegen. Zum Beispiel:

var newTable = '<div id="startID"> \ 
      <h3>\ 
      </h3> \ 
      <table class="tg" style="width: 100%; height: 100%;padding: 0 0 0 0; margin: 0 0 0 0;background-color: #A0A6AB"> \ 
      <tr> \ 
      <th id='; 

var frequency = freq; 

var newTable2 = '></th> \ 
      <th></th> \ 
      <th></th> \ 
      <th></th> \ 
      </tr> \ 
      </table> \ 
      </div>'; 

Und dann:

$('.emitters').append(newTable + frequency + newTable2) 
+2

wirkt wie ein Zauber. Danke vielmals. – ksup

+0

@kedar Antwort ist viel eleganter als meins (ich schlafe hier) ... –

+1

@ksup was ist mit der Annahme der richtigen Antwort? – Legionar

Verwandte Themen