{"id":14353,"date":"2022-10-07T12:12:04","date_gmt":"2022-10-07T06:42:04","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/"},"modified":"2022-10-07T12:12:04","modified_gmt":"2022-10-07T06:42:04","slug":"solved-javascript-eval-function-not-working-properly-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/","title":{"rendered":"[Solved] Javascript eval() function not working properly [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-42010236\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"42010236\" data-parentid=\"42010118\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>There are a whole bunch of reasons why this is the wrong approach.<\/p>\n<p>First, <code>innerHTML<\/code> returns a string containing, not only the text content of an element, but also any nested HTML elements as well. If it&#8217;s just the text you want, use <code>textContent<\/code>.<\/p>\n<p>Next, by having the user input the actual math operator they want to use in the same string with the numbers creates more confusion.  Have the user enter that separately and then you can use <code>if\/then<\/code> logic to ultimately use the correct operator.<\/p>\n<p>Next (and this is the important part), don&#8217;t ever use <code>eval()<\/code>. It is not required to solve just about any problem you could encounter, but it opens up the door to &#8220;Cross Site Scripting&#8221; attacks on your website. Additionally, it manipulates the <code>this<\/code> binding and executes its code in its own scope.<\/p>\n<p>What you really need to do is simply convert the string input into a number so that you can do math with it. You can do this with <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/parseInt\"><code>parseInt()<\/code><\/a><\/strong> and <strong><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/parseFloat\"><code>parseFloat()<\/code><\/a><\/strong><\/p>\n<p>So, your line could be:<\/p>\n<pre><code>math.innerHTML += \" = \" + parseFloat(math.textContent);\n<\/code><\/pre>\n<p>Lastly, for math, the order of operations is: <\/p>\n<ul>\n<li>Parenthesis<\/li>\n<li>Exponents<\/li>\n<li>Multiplication<\/li>\n<li>Division<\/li>\n<li>Addtion<\/li>\n<li>Subtraction<\/li>\n<\/ul>\n<p>You can see that division is done prior to addition and that means that in your expression: <code>11 + 11\/2<\/code>, first <code>11\/2<\/code> is evaluated (5.5) and then it is added to <code>11<\/code> (16.5).<\/p>\n<p>Finally, remember that the <code>+<\/code> operator in JavaScript can mean mathematical addition or string concatenation and if one of the operands is a string, the other will be converted to a string.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Javascript eval() function not working properly [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] There are a whole bunch of reasons why this is the wrong approach. First, innerHTML returns a string containing, not only the text content of an element, but also any nested HTML elements as well. If it&#8217;s just the text you want, use textContent. Next, by having the user input the actual math operator &#8230; <a title=\"[Solved] Javascript eval() function not working properly [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\" aria-label=\"More on [Solved] Javascript eval() function not working properly [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[1777,3770,333],"class_list":["post-14353","post","type-post","status-publish","format-standard","hentry","category-solved","tag-eval","tag-evaluate","tag-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Javascript eval() function not working properly [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Javascript eval() function not working properly [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] There are a whole bunch of reasons why this is the wrong approach. First, innerHTML returns a string containing, not only the text content of an element, but also any nested HTML elements as well. If it&#8217;s just the text you want, use textContent. Next, by having the user input the actual math operator ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-07T06:42:04+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Javascript eval() function not working properly [closed]\",\"datePublished\":\"2022-10-07T06:42:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\"},\"wordCount\":259,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"eval\",\"evaluate\",\"javascript\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\",\"name\":\"[Solved] Javascript eval() function not working properly [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-07T06:42:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Javascript eval() function not working properly [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Javascript eval() function not working properly [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Javascript eval() function not working properly [closed] - JassWeb","og_description":"[ad_1] There are a whole bunch of reasons why this is the wrong approach. First, innerHTML returns a string containing, not only the text content of an element, but also any nested HTML elements as well. If it&#8217;s just the text you want, use textContent. Next, by having the user input the actual math operator ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/","og_site_name":"JassWeb","article_published_time":"2022-10-07T06:42:04+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Javascript eval() function not working properly [closed]","datePublished":"2022-10-07T06:42:04+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/"},"wordCount":259,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["eval","evaluate","javascript"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/","name":"[Solved] Javascript eval() function not working properly [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-07T06:42:04+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-javascript-eval-function-not-working-properly-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Javascript eval() function not working properly [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=14353"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/14353\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=14353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=14353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=14353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}