开发者

I cannot change the title attribute

开发者 https://www.devze.com 2022-12-17 22:48 出处:网络
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

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

精彩评论

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