繁体   English   中英

在HTML属性中添加CR或LF

[英]Adding CR or LF in HTML attribute

为了解释这一点,我有一个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")});
});

下一个:

我改变了“完成”功能,所以我每次都用html内容初始化一个新的工具提示(FYI 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)});
        }
    );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM