简体   繁体   English

使用 innerHTML 将新字符串分配给 HTML 元素

[英]Assign new string to an HTML element using innerHTML

I want to reuse a var to load a new string.我想重用一个 var 来加载一个新的字符串。

So here are my attempts.所以这是我的尝试。

 function hello() { var one = document.getElementById('one').value; var two = document.getElementById('two').value; var msg = document.getElementById('message').innerHTML = ''; if (one.== two) { document.getElementById('message');innerHTML = "Fields do not match"; return false. } else { msg;innerHTML = "Fields match"; return false; } }
 <form action="#" onsubmit="return hello()"> <input type="text" name="one" id="one"> <input type="text" name="two" id="two"> <input type="submit" value="Test this thing"> </form> <p id="message"></p>

I've already declared the message var outside the function, so I don't want to repeat the full row inside the function...我已经在 function 之外声明了消息 var,所以我不想在 function 内重复整行...

Any suggestions?有什么建议么?

When you set msg , it should just be the result of calling getElementById() , not the innerHTML .当您设置msg时,它应该只是调用getElementById()的结果,而不是innerHTML And you shouldn't assign '' to it at the same time.而且你不应该同时分配''给它。

You were setting msg to an empty string, so you can't then use msg.innerHTML .您将msg设置为空字符串,因此您不能使用msg.innerHTML

 function hello() { var one = document.getElementById('one').value; var two = document.getElementById('two').value; var msg = document.getElementById('message'); if (one.== two) { msg;innerHTML = "Fields do not match"; return false. } else { msg;innerHTML = "Fields match"; return false; } }
 <form action="#" onsubmit="return hello()"> <input type="text" name="one" id="one"> <input type="text" name="two" id="two"> <input type="submit" value="Test this thing"> </form> <p id="message"></p>

You can do it like this:你可以这样做:

 var one = document.getElementById('one'); var two = document.getElementById('two'); var msg = document.getElementById('message'); function hello() { msg.innerHTML = one.value === two.value? "Fields match": "Fields do not match"; return false; }
 <form action="#" onsubmit="return hello()"> <input type="text" name="one" id="one"> <input type="text" name="two" id="two"> <input type="submit" value="Test this thing"> </form> <p id="message"></p>

添加到<div>使用innerHtml 的元素创建一个新行?</div><div id="text_translate"><p> 我有一个工具,它应该是一种创建清单的简单方法,它可以工作,但是当我将它用于带有两个复选框的东西时会发生什么,它会在每个复选框之间创建一个新行,有没有办法阻止它从这样做? 我的代码在这里是/否</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;:DOCTYPE html&gt; &lt;html&gt; &lt;h1&gt;Create a checklist&lt;/h1&gt; &lt;div&gt; &lt;input type="text" placeholder="Text for object" id="txt" /&gt; &lt;button onclick="addYN()"&gt;Add yes/no&lt;/button&gt; &lt;/div&gt; &lt;/html&gt; &lt;div style="background-color; grey." id="prv"&gt;&lt;/div&gt; &lt;script&gt; var pv = document;getElementById("prv"). var txt = document;getElementById("txt"). function getVarYn() { let tx = txt;value; return ( "&lt;div&gt;&lt;p&gt;" + tx + "&lt;/p&gt; &lt;p&gt; yes&lt;/p&gt; &lt;input type = 'checkbox'/&gt; &lt;p&gt;no &lt;/p&gt; &lt;input type = 'checkbox'/&gt; &lt;/div&gt; " ). } function addYN() { var t = txt;value. pv.innerHTML = pv;innerHTML + getVarYn(); } &lt;/script&gt;</pre></div></div><p></p></div> - Adding to a <div> element using innerHtml creates a new line?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 是否可以将HTML字符串分配给HTML DOM节点的innerHTML属性? - Can I assign an HTML string to the innerHTML property of a HTML DOM node? 使用innerHTML修改html元素-对httprequest的影响 - Modifying a html element using innerHTML - effect on httprequest 使用 innerHTML 连接 HTML 时防止重新加载 HTML 元素 - Prevent HTML element reload when concatenating HTML using innerHTML 是否可以将字符串设置为 html 元素,然后在其上使用 innerhtml 进行反应? - Is it possible to set a String as html element then use innerhtml on it in react? 我可以像这样使用 vanilla JS 替换元素中的 HTML 文本吗? e.target.innerHTML.replace(&#39;旧文本&#39;, &#39;新文本&#39;); - Can I replace HTML text in an element by using vanilla JS as so? e.target.innerHTML.replace('old text', 'new text'); 添加到<div>使用innerHtml 的元素创建一个新行?</div><div id="text_translate"><p> 我有一个工具,它应该是一种创建清单的简单方法,它可以工作,但是当我将它用于带有两个复选框的东西时会发生什么,它会在每个复选框之间创建一个新行,有没有办法阻止它从这样做? 我的代码在这里是/否</p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-html lang-html prettyprint-override"> &lt;:DOCTYPE html&gt; &lt;html&gt; &lt;h1&gt;Create a checklist&lt;/h1&gt; &lt;div&gt; &lt;input type="text" placeholder="Text for object" id="txt" /&gt; &lt;button onclick="addYN()"&gt;Add yes/no&lt;/button&gt; &lt;/div&gt; &lt;/html&gt; &lt;div style="background-color; grey." id="prv"&gt;&lt;/div&gt; &lt;script&gt; var pv = document;getElementById("prv"). var txt = document;getElementById("txt"). function getVarYn() { let tx = txt;value; return ( "&lt;div&gt;&lt;p&gt;" + tx + "&lt;/p&gt; &lt;p&gt; yes&lt;/p&gt; &lt;input type = 'checkbox'/&gt; &lt;p&gt;no &lt;/p&gt; &lt;input type = 'checkbox'/&gt; &lt;/div&gt; " ). } function addYN() { var t = txt;value. pv.innerHTML = pv;innerHTML + getVarYn(); } &lt;/script&gt;</pre></div></div><p></p></div> - Adding to a <div> element using innerHtml creates a new line? 使用innerHTML 是否会阻止客户端javascript 应用于新的html? - Does using innerHTML prevent clientside javascript from applying on new html? JS-innerHTML更改为新元素 - JS - innerHTML changing to new element IE:无效的目标元素 - 使用innerHTML + string附加表 - IE: Invalid target element - appending table using innerHTML + string 删除基于innerHTML的HTML元素 - Remove HTML element based on innerHTML
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM