【问题标题】:jQuery not working with tooltip new line characterjQuery 不使用工具提示换行符
【发布时间】:2014-05-16 20:48:54
【问题描述】:

我有一个 html 元素的字符串,类似于

"<div title=\"123 &#13; 123\">test</div>"

当我将它插入 DOM 并在页面上查看它时,我看到了

123
123

作为工具提示。但是,当我尝试使用 jquery 更改其标题值时:

element.prop("title", "456 &#13; 456");

我觉得

456 &#13; 456

作为工具提示。有谁知道如何解决这一问题?谢谢。

【问题讨论】:

  • 你可以在title属性中使用&lt;br\&gt;
  • 这与&amp;#13;的效果相同。即当我使用 jquery 更改它时,它在标题中字面显示 &lt;br\&gt;
  • 所以你是说你已经尝试过了但它不起作用?你也可以看看stackoverflow.com/questions/14599562/…
  • 我认为这是使用 jquery widgit 工具提示。我说的是标准浏览器工具提示。
  • 哦,很抱歉 jquery 标签(和标题)把我扔了。以为你在使用 jquery 工具提示。

标签: javascript jquery html


【解决方案1】:

在您的第一个示例中,&amp;#13; 被浏览器解析为 DOM,从而正确理解实体。

在第二个例子中,它没有被浏览器解析,而是被 javascript 直接注入到 DOM 中。所以你需要使用适当的javascript编码。

.prop('title',"456 \r 456");

试试这个小提琴http://jsfiddle.net/pEbt2/5/

【讨论】:

    【解决方案2】:

    使用.prop("title", "456 \n 456");

    【讨论】:

      【解决方案3】:

      另一种选择是:

      .prop( 'title', ['456',String.fromCharCode(13),'456'].join(' ') );
      

      【讨论】:

        【解决方案4】:

        如果您希望处理工具提示中的 HTML 特殊字符,例如 &amp;#13;&amp;#8364;(欧元符号),您可以创建一个空的、看不见的 div 元素,用您的 html 设置它,然后使用:

        element.prop("title", $('<div/>').html('456 &#13; 456').text());
        

        【讨论】:

          猜你喜欢
          • 2013-01-14
          • 1970-01-01
          • 1970-01-01
          • 2015-05-31
          • 1970-01-01
          • 2015-07-07
          • 1970-01-01
          • 1970-01-01
          • 2015-02-27
          相关资源
          最近更新 更多