2012-04-11 16 views
0

Ich zeige die JSON-Antwort auf HTML-Seite mit Javascript. Antwort kann mehrere Ergebnisse und einen Link für jedes Ergebnis enthalten. Ich zeige dies dynamisch.dynamisch die Größe mehrerer DIVs anpassen

-Code hierfür lautet:

var response=eval('(' + request.responseText + ')'); 

     for(i=0;i<response.items.length;i++) 
     { 

      var innerDivElement=document.createElement('div'); 
      divElement.appendChild(innerDivElement); 
      innerDivElement.setAttribute("id", response.items[i].link); 
      innerDivElement.setAttribute("title","link_attr"); 
      innerDivElement.setAttribute("class","links"); 
      innerDivElement.innerHTML=response.items[i].link; 
     } 

Hier werden alle DIVs gleiche Höhe und Breite haben. Ich möchte die Größe von DIV abhängig von der Größe von innerHTML anpassen. Wie kann das gemacht werden?

+2

Sie sollten verwenden 'eval' nie: http://javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/ – Josh

+0

Können Sie erklären, wie die Größe des 'innerHTML' die Größe des' div' (Höhe und/oder Breite) beeinflussen soll? –

+0

Divs von Natur aus basierend auf ihrem Inhalt. Wenn deine Größe fest ist, dann ist das so, weil deine CSS-Regeln sie erzwingen. Ändern Sie Ihre CSS –

Antwort

0

Zuerst sollten Sie wirklich versuchen, JavaScript Frameworks wie jQuery zu verwenden. Die Funktion eval() ist beispielsweise nicht sehr sicher. Aber trotzdem:

Wenn Sie im CSS für das DIV, das die inneren Elemente enthält, eine Mindesthöhe und eine Mindestbreite auf einen niedrigen Wert setzen, wird es bei Bedarf automatisch gedehnt.

Die JS Art und Weise:

divElement.setAttribute("class", "innerElementHolder"); 

Oder, wenn Sie diese DivElement aus einer HTML-Seite abrufen, fügen Sie einfach:

class="innerElementHolder" 

an den DIV, die alle Elemente hält Sie in Ihnen JS erstellen.

Die innerElementHolder CSS etwas sein sollte wie:

.innerElementHolder { 
    min-height: 10px; 
    min-width: 10px; 
} 
+0

Ich habe das versucht, aber das funktioniert nicht. – sonam

Verwandte Themen