2011-08-11 33 views
0

所以我有以下的HTML:的JavaScript创建的标签插入错误的位置

<div id="divForComponents"> 
     <input type="button" value="+" onclick="addFilter('divForComponents')"/>         
</div> 

在我的脚本文件:

function addFilter(divId){ 
var div = document.getElementById(divId); 

var label = document.createElement("label"); 
var text = document.createTextNode("Filter by:"); 
label.appendChild(text); 
div.appendChild(label); 

var filter = document.createElement("select"); 
filter.name = "selectName"; 
filter.options[0] = new Option("selection 1","value 1"); 
filter.options[1] = new Option("selection 2","value 2"); 
filter.options[2] = new Option("selection 3","value 3"); 
filter.options[3] = new Option("selection 4","value 4"); 
div.appendChild(filter); 

var input = document.createElement("input"); 
input.type = "text"; 
input.name = "inputName"; 
div.appendChild(input); 
} 

现在选择成分和输入字段正确添加,但该标签添加在我已经在该div上的按钮之前。我想,并期望获得定位:

Button Label Select Input 

相反,我得到:

Label Button Select Input 

我测试的浏览器是铬,不知道这算个什么在这里。

问候, 波格丹

+0

我没有看到你的代码的按钮。 –

+0

按钮已经在div中。 – Bogdan

回答

1

它实际上是插入标签按钮之前或只是视觉上显示出来呀?这听起来像你可能有一个CSS样式,告诉标签向左浮动。

+0

嗯,感谢您的意见。这是我通常不处理前端的更大项目的一部分,因此可能是这样。有什么办法可以“覆盖”这个吗? – Bogdan

+0

当您创建标签时,您可以为标签添加样式属性,并在标签中放置'float:none;',以便生成的html类似于: – varfoo

+0

再次感谢输入。 – Bogdan

1

首先,你的功能被命名为addComponents(),但你使用addFilter()。我刚刚尝试过您的代码,并将addFilter()更改为addComponents(),并且标签已正确设置。

+0

错误类型,编辑。 – Bogdan