I am trying to create a function that converts plain text to HTML as a bit of coding practice. This is the code for it.
function convert() {
var input_str = "";
var text_input = "";
var output_html = "";
var counter = 0;
input_str=$("#in").val();
text_input = input_str.trim();
if (text_input.length > 0) {
output_html += "<p>";
for (counter=0; counter < text_input.length; counter++) {
switch (text_input[counter]){
case '\n':
if (text_input[counter+1]==='\n'){
output_html+="</p>\n<p>";
counter++;
}
else output_html+="<br>";
break;
case ' ':
if(text_input[counter-1] != ' ' && text_input[counter-1] != '\t')
output_html+=" ";
break;
case '\t':
if(text_input[counter-1] != '\t')
output_html+=" ";
break;
case '&':
output_html+="%amp;";
break;
case '"':
output_html+=""";
break;
case '>':
output_html+=">";
case '<':
output_html+="<";
default:
output_html+=text_input[counter];
}
}
$("#out").val() = output_html;
}
}
I can't seem to figure out why $("#out").val() = output_html isn't working, but changing $("#out") to the JavaScript equivalent document.getElementById("id").value works absolutely fine. I don't mind using the latter to fix the problem but I am a bit mind boggled and would love to know the solution.
<div id="wrapper">
<div id="html" class="tabs">
<textarea id="out">OUTPUT</textarea>
</div>
<div id="plain" class="tabs">
<textarea id="in">INPUT</textarea>
</div>
</div>
EDIT I have changed the HTML id="output" to id="out" (as it is on the original file, I accidentally edited it when pasting it into stackoverflow