在文本节点内的网页上创建换行符 - Javascript
Create Linebreak on webpage within a textnode - Javascript
我看到了一些对此问题的回复,但这些建议并没有解决我的输出问题。表单接受输入并打印到网页,如下所示:
function init() {
var div = document.createElement("div");
div.id = "output";
var name = document.getElementById("name").value;
name.type = "text";
var address = document.getElementById("address").value;
address.type = "text";
var city = document.getElementById("city").value;
city.type = "text";
var state = document.getElementById("state");
state.type = "text";
var index = state.selectedIndex;
var fullState = state.options[index];
var zip = document.getElementById("zip").value;
zip.type = "text";
var email = document.getElementById("email").value;
email.type = "text";
var areaCode = document.getElementById("areaCode").value;
areaCode.type = "text";
var prefix = document.getElementById("prefix").value;
prefix.type = "text";
var suffix = document.getElementById("suffix").value;
suffix.type = "text";
var gender = document.getElementById("gender").value;
/*
var courses = document.getElementById("courses").value;
courses.type = "text";
var aj = document.getElementById("aj").value;
aj.type = "text";
var asp = document.getElementById("asp").value;
asp.type = "text";
var php = document.getElementById("php").value;
php.type = "text";
*/
var br = document.createElement('br');
var printName = document.createTextNode("Name: " + name + " ");
var printEmail = document.createTextNode("Email: " + email + " ");
var printPhone = document.createTextNode("Phone: " + areaCode + "-" + prefix + "-" + suffix);
var printAddress = document.createTextNode("Address: " + address + " " + city + " " + fullState.text + " " + zip);
var printGender = document.createTextNode("Gender: " + gender + " ");
//var printCourses = document.createTextNode("Courses Taken:" + courses + " ");
div.appendChild(printName);
div.appendChild(br);
div.appendChild(printEmail);
div.appendChild(br);
div.appendChild(printPhone);
div.appendChild(br);
div.appendChild(printAddress);
div.appendChild(br);
div.appendChild(printGender);
div.appendChild(br);
//div.appendChild(printCourses);
div.appendChild(br);
var output = document.getElementById("output");
if(output) {
output.parentNode.replaceChild(div, output);
} else {
document.body.appendChild(div);
}
}
尽管创建了换行元素,但输出仍然只是网页上的一条连续线。还有其他建议吗?
当你
var br = document.createElement('br');
您有一个对 SINGLE 元素的引用。所以当你这样做时:
div.appendChild(printName);
div.appendChild(br);
div.appendChild(printEmail);
div.appendChild(br);
你说的是"add the printName
element, then add this <br>
element after it. Now, create the printEmail
element, then MOVE that same <br>
element after it."
所以最后,你仍然只有一个 <br>
元素,在所有其他元素之后。
可能涉及最少代码更改的修复如下:
function br() {
return document.createElement('br');
}
div.appendChild(printName);
div.appendChild(br());
我看到了一些对此问题的回复,但这些建议并没有解决我的输出问题。表单接受输入并打印到网页,如下所示:
function init() {
var div = document.createElement("div");
div.id = "output";
var name = document.getElementById("name").value;
name.type = "text";
var address = document.getElementById("address").value;
address.type = "text";
var city = document.getElementById("city").value;
city.type = "text";
var state = document.getElementById("state");
state.type = "text";
var index = state.selectedIndex;
var fullState = state.options[index];
var zip = document.getElementById("zip").value;
zip.type = "text";
var email = document.getElementById("email").value;
email.type = "text";
var areaCode = document.getElementById("areaCode").value;
areaCode.type = "text";
var prefix = document.getElementById("prefix").value;
prefix.type = "text";
var suffix = document.getElementById("suffix").value;
suffix.type = "text";
var gender = document.getElementById("gender").value;
/*
var courses = document.getElementById("courses").value;
courses.type = "text";
var aj = document.getElementById("aj").value;
aj.type = "text";
var asp = document.getElementById("asp").value;
asp.type = "text";
var php = document.getElementById("php").value;
php.type = "text";
*/
var br = document.createElement('br');
var printName = document.createTextNode("Name: " + name + " ");
var printEmail = document.createTextNode("Email: " + email + " ");
var printPhone = document.createTextNode("Phone: " + areaCode + "-" + prefix + "-" + suffix);
var printAddress = document.createTextNode("Address: " + address + " " + city + " " + fullState.text + " " + zip);
var printGender = document.createTextNode("Gender: " + gender + " ");
//var printCourses = document.createTextNode("Courses Taken:" + courses + " ");
div.appendChild(printName);
div.appendChild(br);
div.appendChild(printEmail);
div.appendChild(br);
div.appendChild(printPhone);
div.appendChild(br);
div.appendChild(printAddress);
div.appendChild(br);
div.appendChild(printGender);
div.appendChild(br);
//div.appendChild(printCourses);
div.appendChild(br);
var output = document.getElementById("output");
if(output) {
output.parentNode.replaceChild(div, output);
} else {
document.body.appendChild(div);
}
}
尽管创建了换行元素,但输出仍然只是网页上的一条连续线。还有其他建议吗?
当你
var br = document.createElement('br');
您有一个对 SINGLE 元素的引用。所以当你这样做时:
div.appendChild(printName);
div.appendChild(br);
div.appendChild(printEmail);
div.appendChild(br);
你说的是"add the printName
element, then add this <br>
element after it. Now, create the printEmail
element, then MOVE that same <br>
element after it."
所以最后,你仍然只有一个 <br>
元素,在所有其他元素之后。
可能涉及最少代码更改的修复如下:
function br() {
return document.createElement('br');
}
div.appendChild(printName);
div.appendChild(br());