2012-04-11 128 views
0

我显示使用JavaScript的HTML页面上的JSON响应。 响应可能包含多个结果和一个对应于每个结果的链接。我正在动态显示它。动态调整多个div的大小

代码这是:

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

这里所有的DIV都具有相同的高度和宽度。我想根据innerHTML的大小来调整DIV的大小。如何做到这一点?

+2

你永远不应该使用'eval':http://javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/ – Josh 2012-04-11 19:01:40

+0

您能否解释一下'innerHTML'的大小应该如何影响'div'(高度和/或宽度)的大小..? – 2012-04-11 19:02:08

+0

Div性质根据其内容大小而定。如果你的尺寸是固定的,因为你的css规则会强制它们。改变你的CSS – 2012-04-11 19:02:13

回答

0

首先,你应该尝试使用JavaScript框架像jQuery。例如,eval()函数不是很安全。但无论如何:

如果设置一个最小高度和最小宽度在CSS用于保持所述内部元件的DIV低值,它会在需要时自动伸展。

的JS方式:

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

或者,如果你是从一个HTML页面检索此的DivElement,只需添加:

class="innerElementHolder" 

到保存在你所JS创建的所有元素的DIV。

的innerElementHolder CSS应该是这样的:

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

我试过,但这不起作用。 – sonam 2012-04-12 05:16:21