简体   繁体   English

如何仍然将数据从js传递到html中

[英]How to pass data from js into html still in js

Due to the structure of my project I have to define my modal's markup in js. 由于项目的结构,我必须在js中定义我的模式的标记。 To do so I write: var modal_message = '<ul><li id="address"></li><li id="average"></li></ul>'; 为此,我写: var modal_message = '<ul><li id="address"></li><li id="average"></li></ul>'; However, I need to pass inside this html markup some js variables from my code. 但是,我需要在此html标记中传递代码中的一些js变量。

It's kind of $('#address').innerHTML = var1; $('#average_sum').innerHTML = var2; 有点像$('#address').innerHTML = var1; $('#average_sum').innerHTML = var2; $('#address').innerHTML = var1; $('#average_sum').innerHTML = var2; But this doesnot work as the modal is defined only after clicking a button. 但这不起作用,因为仅在单击按钮后才定义模态。 So I wanna pre-pass all the variables in the way <li>{{ var1 }}</li> What should I do to achieve it? 所以我想以<li>{{ var1 }}</li>的方式预传递所有变量,该怎么办?

You can do it by creating a temporary element with the HTML content. 您可以通过使用HTML内容创建一个临时元素来实现。

Using JQuery : 使用JQuery

 let modal_message = '<ul><li id="address"></li><li id="average"></li></ul>'; // create a dummy element with your html var $temp = $('<div/>', { html: modal_message }) let var1= 'test', var2 = 'test1'; // get elements and update html content $temp.find('#address ').html(var1); $temp.find('#average').html(var2); // now get the dummy element html content console.log($temp.html()); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

Without JQuery : 没有JQuery

 let modal_message = '<ul><li id="address"></li><li id="average"></li></ul>'; // create a dummy dom element var $temp = document.createElement('div'); // set HTML content $temp.innerHTML = modal_message; let var1 = 'test', var2 = 'test1'; // get elements within dummy element and update content $temp.querySelector('#address ').innerHTML = var1; $temp.querySelector('#average').innerHTML = var2; // get final html content console.log($temp.innerHTML); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 


In case there is only one parent tag in your HTML string then there is no need to create a dummy element instead just use the string. 如果您的HTML字符串中只有一个父标记,则无需创建虚拟元素,而只需使用该字符串即可。

 let modal_message = '<ul><li id="address"></li><li id="average"></li></ul>'; // create a jQuery element with your html var $temp = $(modal_message) let var1= 'test', var2 = 'test1'; // get elements and update html content $temp.find('#address ').html(var1); $temp.find('#average').html(var2); // now get the outerHTML property of current element console.log($temp.prop('outerHTML')); // or console.log($temp[0].outerHTML); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

这可以使用ES6模板文字来完成

var modal_message = `<ul><li id="address">${var1}</li><li id="average">${var2}</li></ul>`;

Try using template literals . 尝试使用模板文字

 var content = "Hello World!"; var template = `<p>${content}</p>`; $('#stuff').html(template); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="stuff"></div> 

如何将变量从 JS 传递到 html<object data> 和<embed src><div id="text_translate"><p>我一直在寻找这个几个小时,真的找不到任何好的信息。 不知道是否甚至可能。</p><pre> &lt;script&gt; var urlParams = new URLSearchParams(window.location.search); var referencia=urlParams.get('parameter'); var link1="https://www.example.com"; if (referencia==null){ referencia="CLS"; } link1=link1+"?refer="+referencia; &lt;/script&gt; &lt;div&gt; &lt;object data="link1 goes here"&gt; &lt;embed src="link1 goes here"&gt; &lt;/embed&gt; &lt;/object&gt; &lt;/div&gt;</pre><p> 我确实看到了一些使用 ID 的解决方案,然后使用 document.getElementById('ID').src = link1, same for.data=link1,但不起作用。</p><p> 任何帮助将不胜感激。</p><p> 谢谢</p></div></object> - How to pass a variable from JS to html <object data=> and <embed src=>

暂无
暂无

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

相关问题 如何将 django 中的数据从 html 模板传递给 js - How to pass data from django to js from html template 如何将数据从 Node.js 传递到 html - How to pass data from Node.js to html Angular js如何从Ajax传递数据以选择HTML选项 - Angular js how to pass data from Ajax to select option html 如何将数据从节点js文件传递到html文件 - How to pass data from a node js file to an html file 如何将数据从节点js传递到html? - How to pass data from node js to html.? 如何将变量从 JS 传递到 html<object data> 和<embed src><div id="text_translate"><p>我一直在寻找这个几个小时,真的找不到任何好的信息。 不知道是否甚至可能。</p><pre> &lt;script&gt; var urlParams = new URLSearchParams(window.location.search); var referencia=urlParams.get('parameter'); var link1="https://www.example.com"; if (referencia==null){ referencia="CLS"; } link1=link1+"?refer="+referencia; &lt;/script&gt; &lt;div&gt; &lt;object data="link1 goes here"&gt; &lt;embed src="link1 goes here"&gt; &lt;/embed&gt; &lt;/object&gt; &lt;/div&gt;</pre><p> 我确实看到了一些使用 ID 的解决方案,然后使用 document.getElementById('ID').src = link1, same for.data=link1,但不起作用。</p><p> 任何帮助将不胜感激。</p><p> 谢谢</p></div></object> - How to pass a variable from JS to html <object data=> and <embed src=> 是否可以将数据从节点 js 传递到前端 js 而不是 html? - Is it possible to pass data from node js to frontend js and not to html? 如何将args从html传递到js? - How to pass args from html to js? 如何将值从HTML传递到Node JS? - How to pass a value from HTML to Node JS? 如何将数据从.cs传递到.js? - How to pass data from .cs to .js?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM