在 HTML 属性中添加 CR 或 LF

Adding CR or LF in HTML attribute

本文关键字:CR LF 添加 HTML 属性      更新时间:2023-09-26

为了尽快解释这一点,我有一个mouseenter Jquery事件触发了一个AJAX调用。还有一个 Jquery UI 工具提示。

$(function()
{
    $(document).tooltip({track:true});
    $('#NewUser').mouseenter(function(){AJAXValidation("NewUser")});
});  

这是电话:

function AJAXValidation(section)
{
    var request = $.ajax(
    {
        url: "ProcessJRT.php",
        type: "POST",
        contentType:"application/x-www-form-urlencoded;charset=UTF-8",
        data:
        {
            validate:section
        }
    });
    request.done(
        function(message)
        {
            var div = document.createElement('div');
            $(div).html(message);
            $(div).children().each
            (
                function(i)
                {
                    var title = '';
                    if($('#' + $(this).attr('id')).attr('title') != null)
                    {
                        title = $('#' + $(this).id).attr('title');
                    }
                    title += $(this).html() + ''r'n';
                    $('#' + $(this).id).attr('title', title);
                }
            );
        });
}

它现在所做的是从message中获取<div>并将它们放置在父<div>中。(在我的代码中,div 已经存在,我更改了该部分,以便问题尽可能简短)。

然后,我从这些<div>中获取文本,并将它们放在相应的 <input/> title 属性中。

一切都在这里完美无缺,除了这个愚蠢的小东西:

我无法在标题中添加 LN 或 CR,因此div 中的所有文本都将在单独的行上......

我尝试在属性中添加一个</br>,如下所示:

function(i)
{
    var title = '';
    if($('#' + $(this).id).attr('title') != null)
    {
        title = $('#' + $(this).attr('id')).attr('title');
    }
    title += $(this).html() + '</br>';//<---See I added a BR here 
    $('#' + $(this).id).attr('title', title);
}

但它将</br>显示为普通文本。我尝试了String.fromCharCode(13)但没有奏效,我尝试了 jus ''n'''r'n' 并且仍然有效。

有人可以指出我是否在嘲笑这个吗?

谢谢!

编辑:

$('#' + $(this).attr('id'))更改为 $('#' + $(this).id)

您不能以这种方式设置 title 属性的格式,它不起作用,并且在不同的浏览器中会有所不同。

尝试使用jquery插件qTip来实现你想要的。(看起来也不错!http://craigsworks.com/projects/qtip/

或者,您可以使用&nbsp;&nbsp;&nbsp;等作弊,将文本推送到下一行。 但这充其量是片状的。

以下是我如何用@crush给我的想法来解决我的问题:

第一:

我从触发事件的函数中删除了工具提示初始化:

$(function()
{
    $('#NewUser').mouseenter(function(){AJAXValidation("NewUser")});
});

下一个:

我更改了"done"函数,因此每次使用 html 内容初始化一个新的工具提示(仅供参考,JQuery 工具提示可以格式化 HTML)

这是它现在的样子:

function(message)
{
    var div = document.createElement('div');
    $(div).html(message);
    var title = '';
    $(div).children().each
    (
        function(i)
        {
            if($('#' + $(this).id).attr('title') != null)
            {
                title = $('#' + $(this).id).attr('title');
            }
            title += $(this).html() + '</br>';
            $(document).tooltip({content:title, items:('#' + $(this).id)});
        }
    );
}