开发者

I cannot change the title attribute

Can anyone tell me whats wrong with this function? Everything works as it should right up until i try to change the title attribute, last line. It does not change and has the original value. Im using the title attr as a notification on mouse over

P.S. Javascript/jQuery is not my strong point im a C# developer so please be nice.

function doAlerts(serverDateTime)
{
$('.alertText').each(function()
{
    var getCell = $(this).find("td").eq(0).html()

    var respCount = $(this).find(".messageCount").val();
    var callerId = $(this).find(".messageCallerID").val();
    var getTitleText = $(this).attr('title');

    //get date and title from row off page
    var createDate = $(this).find('.createdDate').html();
    var titleText = $(this).attr('title').replace('Expected SLA : ', '').replace('Expected Response : ', '');
    var title = "Ticket No : " + getCell + "<br>" + getTitleText.replace(' - ','<br>') + "<br>";

    var slaResult = warning(titleText, serverDateTime, 20, "SLA");
    var expResult = warning(titleText, serverDateTime, 60, "Exp");

    if(slaResult)
    {
        $(this).addClass('warning');
        $(".warning").css("background-color", "#FFdddd");
        title = title + "<br>There is less than 20mins before expected 4 hour SLA.<br>";
    }
    if(expResult)
    {
        $(this).addClass('warning');
        $(".warning").css("background-color", "#FFdddd");
        title = t开发者_StackOverflow社区itle + "<br>There is less than 60mins before expected 24 hour response.<br>";
    }
    if(respCount)
    {
        if(respCount > 5)
        {
            $(this).addClass('warning');
            $(".warning").css("background-color", "#FFdddd");
            title = title + "<br>There has been " + respCount + "messages. A phone call is required to the client<br>";
        }
    }
    $(this).attr("title", title);
});

}


You are not allowed to use html (<br>) text in an attribute. Only plain text is allowed.


If you want line breaks in a title attribute, you need to use the CR/LF ASCII characters rather than <br /> elements.


You could mimic PHP's htmlentities() function with a little javascript:

$(this).attr('title', htmlentities(title));

function htmlentities (string, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: nobbler
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // -    depends on: get_html_translation_table
    // *     example 1: htmlentities('Kevin & van Zonneveld');
    // *     returns 1: 'Kevin &amp; van Zonneveld'
    // *     example 2: htmlentities("foo'bar","ENT_QUOTES");
    // *     returns 2: 'foo&#039;bar'

    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();

    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }
    hash_map["'"] = '&#039;';
    for (symbol in hash_map) {
        entity = hash_map[symbol];
        tmp_str = tmp_str.split(symbol).join(entity);
    }

    return tmp_str;
}

SOURCE: http://github.com/kvz/phpjs/raw/master/functions/strings/htmlentities.js

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜