首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML:在属性的字符串中嵌套字符串

问HTML:在属性的字符串中嵌套字符串
EN

Stack Overflow用户
提问于 2019-02-28 04:26:41
回答 1查看 56关注 0票数 1

我的网站包含带有HTML代码的引导弹出窗口。这样的弹出窗口看起来像这样(而不是弹出的HTML,为了可读性,我放了一个占位符):

代码语言:javascript
复制
<mark data-content="Fancy HTML here" data-html="true" data-toggle="popover">
    This mark has a popover
</mark>

在data-content中插入真正的超文本标记语言会带来正确转义引号的问题。我找到了这个问题,看起来和这个问题完全一样:How do I encode html for Bootstrap popover and tooltip content

被接受的答案建议将引号转义为&quot;这不起作用,转义引号不能正确解析。我在这个小提琴中设置了一个示例:https://jsfiddle.net/z4t2sud3/3/

另一种选择是对弹出窗口中的字符串使用单引号'。此选项也在小提琴中,它可以正常工作。

但是如果我想嵌套得更深呢?例如,我插入到data-content中的超文本标记语言也可以包含弹出窗口。虽然这看起来是一个非常糟糕的设计想法,但如果能让它工作起来就好了。

这里有一个双重嵌套弹出窗口的小提琴:https://jsfiddle.net/cwz3sayj/3/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 05:16:51

希望下面的代码片段看起来像您想要的那样,您可以在创建popover实例时传递一个选项,在该实例上设置当单击该实例时将显示的内容。由于第一级在第一次运行脚本时没有出现在DOM中,因此必须在单击第一级后激活第二个弹出窗口。使用模板文字,您可以在正在编写的html代码中使用撇号或引号。

​

代码语言:javascript
复制
$('#firstPopover')
    .popover({
        html: true,
        content: `<button id="secondPopover" class="btn">
                      Goto second level
                  </button>`
    })
    .on('shown.bs.popover', function() {
        $('#secondPopover').popover({
            html: true,
            content: `This is the last level`
        });
    });
代码语言:javascript
复制
<br />
<button id="firstPopover" data-html="true" class="btn">
  Goto first level
</button>

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>

​

现在唯一的问题是,当第一层在第二层之前关闭时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54913929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档