Javascript appendChild()

时间:2011-01-31 02:53:46

标签: javascript jquery

嘿我正在尝试追加两个连续的div,但是我所期待的结果是他们并排,但他们是一个在另一个之上,如此:

1st div
2nd div

而不是1st div 2nd div

var addBudContainer = document.createElement("div");
addBudContainer.id = "addBudContainer";

var addBudBtn = document.createElement("div");
addBudBtn.className = "addBud";

var addBudBtnName = document.createElement("a");
addBudBtnName.className = "btn-addBud";
addBudBtnName.setAttribute("href","#");

addBudBtn.appendChild(addBudBtnName);

var addBudTxt = document.createElement("input");
addBudTxt.id="addBudTxt";
addBudTxt.type="text";
addBudTxt.defaultValue="Enter buddy name";
//txt box effects   
addBudTxt.onfocus = function(){if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';};
addBudTxt.onblur= function(){if(replyTxt.value=='') replyTxt.value=replyTxt.defaultValue;};

addBudContainer.appendChild(addBudBtn);
addBudContainer.appendChild(addBudTxt);

3 个答案:

答案 0 :(得分:1)

默认情况下,<div>元素是“块”元素。简单来说,这意味着<div>将在其父元素中的自己的行(或行)上。

默认情况下,

<span>元素是“内联”,这可能是您要使用的内容。内联元素不会将其兄弟元素推送到其他行。

如果要覆盖此行为,可以使用CSS。

/* This assumes the parent element of your divs has 'some_class' as its class */
.some_class > div {
  display: inline;
}

编辑:我在display: inline之后添加了可选的分隔符分号。

答案 1 :(得分:1)

如果您希望元素在线排列而不是单独的块,那么使用<span>代替<div>可能会获得更好的结果。

答案 2 :(得分:0)

您还可以将“float:left”CSS属性添加到DIV,这将使它们在左侧并排堆叠,直到它们填满封闭元素的可用宽度。