2012-04-11 3 views
0

Я показываю json-ответ на странице html с помощью javascript. Ответ может содержать несколько результатов и одну ссылку, соответствующую каждому результату. Я показываю это динамически.динамическая настройка размера нескольких DIVs

Код для этого:

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; 
     } 

Здесь все DIVs имеют одинаковую высоту и ширину. Я хочу настроить размер DIV в зависимости от размера его innerHTML. Как это можно сделать?

+2

Вы никогда не должны использовать 'eval': http://javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/ – Josh

+0

Можете ли вы объяснить, как размер 'innerHTML' должен влиять на размер' div' (высота и/или ширина) ..? –

+0

Divs по своей природе размером по их содержанию. Если у вас фиксированный размер, а не потому, что ваши правила css их вынуждают. Измените свой css –

ответ

0

Прежде всего, вы должны действительно попробовать использовать JavaScript-фреймворки, такие как jQuery. Функция eval(), например, не очень безопасна. Но в любом случае:

Если вы установите минимальную высоту и минимальную ширину для низкого значения в CSS для DIV, который содержит внутренние элементы, он будет растягиваться автоматически, когда это необходимо.

JS путь:

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

Или, если вы извлекаете эту DivElement из HTML страницы, просто добавьте:

class="innerElementHolder" 

в DIV, который содержит все элементы, которые вы создаете в вас JS.

innerElementHolder CSS должно быть что-то вроде:

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

Я пробовал это, но это не работает. – sonam

Смежные вопросы