使用javascript/jquery在title属性中插入换行符

Inserting linebreak in the title attribute using javascript/jquery

本文关键字:属性 插入 换行符 title javascript jquery 使用      更新时间:2023-09-26

问题:
我需要在工具提示中放一个换行符,这样就不会全部在一行了。我使用tooltipsy生成工具提示。它的工作原理是在任何锚标记上使用title属性,并将类"hastipy"作为工具提示的内容。

所以代码:

<a href="http://tooltipsy.com/" class="hastipy" title="Click here to go to the tooltipsy website">
     tooltipsy
</a>

将是一个显示文本"tooltipsy"的链接,当你将鼠标悬停在它上面时,它会在工具提示中显示"单击此处转到tooltipsi网站"。

但是,如果我想在工具提示中放置换行符,该怎么办?

此代码:

<a href="http://tooltipsy.com/" class="hastipy" title="Click here to <br /> go to the tooltipsy website">
     tooltipsy
</a>

在验证时返回一堆错误http://validator.w3.org

所以我想出了这个javascript/jQuery(由Jason Gennaro编写(:

$('a').each(function(){
    var a = $(this).attr('title');
    var b = a.replace('lineBreak',''n');
    $(this).attr('title', b);
});

此代码使用关键字(在本例中为lineBreak(并将其替换为'n(<--lineBreak?(,因此我的代码通过了验证,并且其中仍然包含lineBreak。

这段代码在jsfiddle上有效(这里是示例(,但在我的网站工具提示中,它不起作用。它插入'n,但并没有像预期的那样删除"lineBreak">

有人能对此做出解释,甚至提出可能的解决方案吗?

注意:
我不想建议使用另一种工具提示方法,tooltipsy非常适合我所需要的一切。

结果:
事实证明,仅仅使用&lt;br /&gt;而不是<br />就可以完美地工作。

使用全局替换调用:.replace(/lineBreak/g,''n');

如果要在标题属性中添加<br />,请使用:&lt;br /&gt;(html实体(。

此外,JQuery会自动将JavaScript封装在$(document).ready(...)中。你也应该这样做:

$(document).ready(function(){
    //HTML-modifying code here.
});