我有一个表,可以在新用户变为活动状态时动态添加行。该功能将添加一个显示用户名称的新行和一个激活灯箱以显示更多信息的按钮。名称和按钮放在一个单元格中,但我想右键对齐按钮并在单元格中左对齐名称。我发现这篇文章Right align and left align text in same HTML table cell展示了如何在HTML中使用div,但我需要动态地执行此操作。有谁猜?我尝试了以下代码,它可以工作,但不能证明我喜欢的名称和按钮。它只是将它们集中在细胞内。我很感激任何帮助。
function addRow(tableID, user, phone, age, city, zipCode) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
tabbody=document.getElementsByTagName("tbody").item(2);
cell1 = document.createElement("TD"); //Create New Row
leftDiv = document.createElement("div"); //Create left div
leftDiv.id = "left"; //Assign div id
leftDiv.setAttribute("style", "float:left;width:50%;"); //Set div attributes
rightDiv = document.createElement("div"); //Create right div
rightDiv.id = "right"; //Assign div id
rightDiv.setAttribute("style", "float:right;width:50%;"); //Set div attributes
user_name = document.createTextNode(user + ' '); //Set user name
details_btn = document.createElement("button"); //Create details button
btn_txt = document.createTextNode("Details"); //Create button text
details_btn.appendChild(btn_txt); //Add "Details" to button text
details_btn.onclick = function(){moreInfo(user, phone, age, city, zipCode);}; //Assign button function
cell1.appendChild(leftDiv);
cell1.appendChild(user_name); //Add name to row
cell1.appendChild(rightDiv);
cell1.appendChild(details_btn); //Add button to row
row.appendChild(cell1); //Add row to table
tabbody.appendChild(row);
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
}
}
答案 0 :(得分:2)
试试这个:
function creatediv() {
var newdiv = document.createElement('div');
newdiv.setAttribute('id', id);
newdiv.style.width = 300;
newdiv.style.height = 300;
newdiv.style.position = "absolute";
newdiv.style.background = "#C0C0C0";
newdiv.innerHTML = "Dynamic Div";
document.body.appendChild(newdiv);
}
答案 1 :(得分:1)
问题是你需要将用户名和按钮放在你创建的浮动div中,而你把它们放在与div相同的单元格中,但是与它们处于同一级别的div。
请尝试更改此部分:
cell1.appendChild(leftDiv);
cell1.appendChild(user_name); //Add name to row
cell1.appendChild(rightDiv);
cell1.appendChild(details_btn); //Add button to row
row.appendChild(cell1); //Add row to table
tabbody.appendChild(row);
到此:
leftDiv.appendChild(user_name); // Add name to left div
rightDiv.appendChild(details_btn); // Add button to right div
cell1.appendChild(leftDiv);
cell1.appendChild(rightDiv);
row.appendChild(cell1); //Add row to table
tabbody.appendChild(row);
此外,如果要添加多于一行,div将获得“left”和“right”的重复ID。改为使用一个类。
最后,您不需要将rightDiv的宽度设置为50%。它应该自动右对齐,如果那是你想要的。
答案 2 :(得分:0)
不要单独给出css规则,而是直接使用css规则集:
div.className = "div_class_right/left"; //for creating right/left div respectively.
在你的css中创建像这样的规则集div_class:
.div_class_right/left{
float : right/left;
width : 50%;
}