Hi all,
I'm very new to javascript and I'm practicing the creation of dynamic contents by using getElementByID and innerHTML and ran into a problem. I used Firebug to check for errors and didn't see any but my script is not working.
When the page loads, my script is supposed to create new contents for a div with the id of Client_Info if it does not contain any inside it.
The following are my the contents of my external javascript file called CreateTag.js and my HTML Markup:
function Delete_Div()
{
var myElement= document.getElementbyID(Client_Info);
//Onload Check if the contents of Client_Info is equal to the value in the parenthesis
if(myElement.innerHTML!="")
{
//Rewrite the contents with the following values
myElement.innerHTML=="<div id='Display' style='position:relative;width:100%;'>
<img alt='Faces' src='images/Clients/YourFullAd.jpg' id='Gallery' style='position:relative;margin-left:45%;top:10px;' >
<div id='ScopeCap' style='position: relative; margin-left:45%; top:65px;'> </div>
</div>"
}
That's a very tricky error. JavaScript doesn't support multiline strings. You can use \ to escape the newLine character, but that makes code very unstable imo. I mean, yeah, that's not good to use '\' for multiline strings.
So, break the string up into sub strings, seperated by +.
Also, you are putting a comment that says "Rewrite the contents with the following values" Which leads me to believe, you want to set the contents of the next innerHTML line. You are not doing that, you are using == to compare the innerHTML element value with that of the string on the other side of the == operator. To assign in javascript, just use one equal sign.
foo = "bar"; // foo is now set to "bar"
foo == "bar"; // (loose-equals) the answer is true, because the value of foo is equal to "bar".
foo === "bar"; // (equals) the answer is true, because the value of foo is the same as "bar".
So you clearly (to my understanding) meant to use the "=" operator out of the three possibilities above.
Bookmarks