【问题标题】:Is it possible to include HTML code in JavaScript?是否可以在 JavaScript 中包含 HTML 代码?
【发布时间】:2012-08-26 08:00:02
【问题描述】:

我有一个基本问题,我可以在 JS 中包含 HTML 代码吗? (document.write)

这是我的 HTML 代码:

<li><a href="#" class="menulink">text</a></li>
<li><a href="#" class="menulink">text</a></li>
<li>
  <a href="#" class="menulink">text</a>
  <ul>
    <li>
      <a href="#" class="sub">text</a>
      <ul>
        <li class="topline"><a href="#">text</a></li>
        <li><a href="#">text</a></li>
        <li><a href="#">text</a></li>
        <li><a href="#">text</a></li>
        <li><a href="#">text</a></li>
        <li><a href="#">text</a></li>
        <li><a href="#">text</a></li>
      </ul>
    </li>
    <li>
      <a href="#" class="sub">text</a>
      <ul>
        <li class="topline"><a href="#">text</a></li>
        <li><a href="#">text</a></li>
      </ul>
    </li>

    <li>
      <a href="#" class="sub">text</a>
    </li>
    <li>
      <a href="#" class="sub">text</a>
    </li>
  </ul>
</li>

<li>
  <a href="#" class="menulink">text</a>
</li>
<li><a href="#" class="menulink">text</a></li>

我想将它包含在这个 JS 代码中:

window.onload = function () {
  document.getElementById("menu").innerHTML="";
}

通过此代码连接它:

<p id="dropdown_menu"></p>

我该怎么做?

完整代码在这里 http://jsfiddle.net/tsnave/eSgWj/4/ 谢谢..

【问题讨论】:

  • 我更改了代码...请帮助我...

标签: javascript html


【解决方案1】:

另一种方法是将 HTML 放入脚本标签中:

<script type="text/template" id="myHtml">
    <li class="topline"><a href="#">some text</a></li>
    <li><a href="#">some text </a></li>
    <li><a href="#">some text</a></li>
    <li><a href="#">some text</a></li>
    <li><a href="#"some text</a></li>
    <li><a href="#">some text</a></li>
    <li><a href="#">some text</a></li>
</script>

然后您可以使用 Javascript 将其导入

var myHtml = document.getElementById('myHtml').innerHTML;

或使用可以帮助您解决此问题的几个库之一。带有type="text/template" 的脚本标签内的代码不会被浏览器解释或显示。与将其直接放入 Javascript 中的字符串相比,这种方法的优势在于它允许您在编辑器中继续将其视为普通 HTML,并保持 Javascript 干净。另见this post by John Resig

【讨论】:

  • type="text/template" 和 type="text/Html" 有什么区别?
【解决方案2】:

我可以在 JS 中包含 HTML 代码吗?

如果你的意思是你可以通过 javascript 输出 HTML,那么答案是肯定的,例如

window.onload = function() {
    document.getElementById("menu").innerHTML = '<li class="topline"><a href="#">some text</a></li>  
                <li><a href="#">some text </a></li>  
                <li><a href="#">some text</a></li>  
                <li><a href="#">some text</a></li>  
                <li><a href="#"some text</a></li>  
                <li><a href="#">some text</a></li>  
                <li><a href="#">some text</a></li>';
}

【讨论】:

    【解决方案3】:
    document.getElementById("menu").innerHTML='
        <li class="topline"><a href="#">some text</a></li>
        <li><a href="#">some text </a></li>
        <li><a href="#">some text</a></li>
        <li><a href="#">some text</a></li>
        <li><a href="#"some text</a></li>
        <li><a href="#">some text</a></li>
        <li><a href="#">some text</a></li>
    ';
    

    我所做的只是将引号转换为单引号,这样 HTML 属性就不会弄乱字符串。如果您确实需要在innerHtml 字符串中添加单引号,您可以使用反斜杠对其进行转义,即:innerHtml = ' Don\'t break me';

    【讨论】:

      【解决方案4】:

      你可以这样做:

      document.getElementById("menu").innerHTML="<div>hello</div>"
      

      【讨论】:

        【解决方案5】:
        window.onload = function(){
            document.getElementById("menu").innerHTML='<li class="topline"><a href="#">some text</a></li><li><a href="#">some text </a></li><li><a href="#">some text</a></li><li><a href="#">some text</a></li><li><a href="#"some text</a></li><li><a href="#">some text</a></li><li><a href="#">some text</a></li>';
        }
        

        已编辑:

        它应该可以工作。

        <script type="text/javascript">
        window.onload = function(){
            document.body.innerHTML = 
                '<li><a href="#" class="menulink">text</a></li>'
                +'<li><a href="#" class="menulink">text</a></li>'
                +'<li><a href="#" class="menulink">text</a><ul>'
                +'<li><a href="#" class="sub">text</a><ul>'
                +'<li class="topline"><a href="#">text</a></li>'
                +'<li><a href="#">text </a></li><li><a href="#">text</a></li>'
                +'<li><a href="#">text</a></li><li><a href="#">text</a></li>'
                +'<li><a href="#"text</a></li><li><a href="#">text</a></li></ul>'
                +'</li><li><a href="#" class="sub">text </a><ul>'
                +'<li class="topline"><a href="#">text</a></li>'
                +'<li><a href="#">text</a></li></ul></li>'
                +'<li><a href="#" class="sub">text</a></li>'
                +'<li><a href="#" class="sub">text</a></li>'
                +'</ul></li><li><a href="#" class="menulink">text</a></li>'
                +'<li><a href="#" class="menulink">text</a>';
        
        }
        

        【讨论】:

        • 我回滚了编辑,因为 JS 不支持字符串中的换行符。
        • 嗨。谢谢!我更改了上面的代码,现在你的解决方案不起作用......你能帮我吗?
        • 确保有一个 id="menu" 的 html 元素并在页面加载后运行此代码,修改答案试试看,应该可以。
        • 您可以编辑请您的代码与上面的当前代码匹配吗?我尝试了你的第一个建议,但代码不起作用......我很想寻求帮助......谢谢!
        • "class="menulink"" 中的代码很好用!!但其他代码不起作用......只有当我将 JS 代码更改为:document.getElementById("menu").innerHTML问题,但我真的需要帮助谢谢大家!
        猜你喜欢
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 2016-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多