jQuery 工具提示添加换行符

Posted

技术标签:

【中文标题】jQuery 工具提示添加换行符【英文标题】:jQuery tooltip add line break 【发布时间】:2013-01-14 00:09:34 【问题描述】:

所以,我想获取包含多个<br/> 的 div 的内容,然后使用 jQuery 工具提示小部件将其作为标题属性传递。我希望这些线条出现在工具提示内的另一个下方。谢谢。到目前为止的代码是:

CSS

.Lines 
    width: 125px;
    height:20px;
    overflow:auto;

JavaScript

$(function () 
    $(document).tooltip();

    $(".Lines").hover(function () 
        IaTxt = $(this).html()

        $(this).prop('title', IaTxt)

    )
);

HTML

<div class="Lines">
    First line.
    <br/>Second line.
    <br/>Third line!
    <br/>Fourth line?
</div>

【问题讨论】:

【参考方案1】:

有一个纯 CSS 解决方案。使用 \n 换行,并添加此 CSS 样式:

.ui-tooltip 
    white-space: pre-line;

如果您想保留空格,也可以使用 pre 或 pre-wrap 代替 pre-line。 见https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

【讨论】:

迄今为止此页面上最简单的解决方案。 对我来说也是最简单的解决方案。我的文本已经包含 \n 所以我只需要 CSS。谢谢! 我的 Jquery Tooltip 版本的类选择器不同:` .tooltip-inner white-space: pre-line; ` 但原理相同!【参考方案2】:

只需在标题属性中使用实体&amp;#10; 换行即可。

【讨论】:

我将如何在我的代码中具体实现它?我通过 jQuery 设置标题属性 在你想要换行的地方添加文本。或替换为 标签 我不知道你是否理解我最初的问题。我想获取 div [参见示例 div] 的内容并将其显示为带有 jQ​​uery 工具提示插件的标题。在那个 div 中我已经有 &lt;br/&gt; 并且我希望换行符出现在 &lt;br/&gt; 所在的工具提示中。 这只是我告诉的。你用 替换 yourVariable.replace("&lt;br/&gt;","&amp;#10;"); 你必须和这个一起使用: .ui-tooltip white-space: pre-line; 【参考方案3】:

这是我用最新的 jquery / jqueryui 做的技巧(假设你想要工具提示的所有项目都有类'jqtooltip',它们有标题标签,并且标题有一个管道字符作为行分隔符:

$('.jqtooltip').tooltip( 
  content: function(callback)  
     callback($(this).prop('title').replace('|', '<br />')); 
  
);

【讨论】:

这只替换第一个'|'。【参考方案4】:

您可以使用工具提示小部件的“内容”选项。另见:

http://jqueryui.com/tooltip/#custom-content

简短示例:

  $(function() 
    $( document ).tooltip(
      content: function() 
        return 'foo'
      
    );
  );

【讨论】:

你能举一个实际的例子,这将实现我的目标吗?谢谢 在您的情况下,字符串 'foo' 可以替换为 Iatext【参考方案5】:

您可以将 HTML 直接输入到 Title 属性中,然后简单地调用以下命令:

$(document).tooltip(
  content: function (callback) 
     callback($(this).prop('title'));
  
);

这样你的 HTML 被渲染而不是转义和字面书写。

【讨论】:

这就是答案。时期。请投票以将此答案移到顶部。 悬停后工具提示不会隐藏。【参考方案6】:

最好用这个:

$(document).tooltip(
   content: function () 
     return $( this ).prop( 'title' ).replace( '|', '<br />' );
   
);

function(callback) 我遇到了工具提示问题,它没有关闭

【讨论】:

如果您有 1 个换行符,那就太好了。对于倍数,请务必使用全局选项。 .replace( /\|/g, '&lt;br /&gt;' ); 请查看此页面的 JDandChips 答案,无需使用自定义字符。您可以在 title 属性中使用 html,只需更改以下函数即可: return $( this ).prop( 'title');【参考方案7】:

我用过这个:

        $("[title]").each(function()
            $(this).tooltip( content: $(this).attr("title"));
        );

这意味着所有具有title属性的元素都将使用jquery工具提示,并且工具提示内容将使用title属性的值。 内容允许html。

【讨论】:

在用它设置标题属性之前,我必须在我的文本中将 /n 替换为 。但是现在我找到了一个更好的解决方案,我用
 标记将它包装起来,并保留换行符和制表符。
【参考方案8】:

我选择了 ScottRFrost 答案的修改版本。他的示例的问题是 .replace 仅替换字符串中字符的第一个实例。这是一个修改后的版本,它将使用正则表达式的 /g(全局)来修改整个字符串中字符的所有实例。

$('.jqtooltip').tooltip( 
   content: function (callback) 
      callback($(this).prop('title').replace(new RegExp("\\|", "g"), '<br />'));
   
);

【讨论】:

您也可以使用正则表达式模式,例如:.replace(/\|/g, '&lt;br /&gt;')

以上是关于jQuery 工具提示添加换行符的主要内容,如果未能解决你的问题,请参考以下文章

在 Bootstrap 3 中向工具提示添加换行符

如何以编程方式在 .NET 框架表单的工具提示中添加换行符

如何在p:工具提示中的p:消息中添加换行符

如何在 reactstrap 工具提示中插入换行符?

jQuery:按 Enter 时在光标位置添加换行符

html 在引导工具提示上启用换行符/新的+ html内容行