2010-01-19 87 views
0

任何人都可以告诉我这个功能有什么问题吗?一切工作,因为它应该直到我试图改变标题属性,最后一行。它不会改变并具有原始价值。 Im使用标题attr作为鼠标通知我无法更改标题属性

P.S. Javascript/jQuery不是我的C#开发人员的强项,所以请你好。

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 = title + "<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); 
}); 

}

+0

什么样的元素有'alertText'类?他们是'

'?你如何验证'title'属性是否被设置?通常情况下,你会希望在锚('')中使用它,而不是在'
'中,它们对浏览器没有任何意义。 – 2010-01-19 13:25:34

+0

如果您添加一个语句(仅作为测试) title =“test text”; $(this).attr(“title”,title); 能完成这项工作?并显示“测试文本”? – 2010-01-19 14:55:45

回答

1

您不允许使用HTML(<br>)文本的属性。只允许纯文本。

+0

是的,我要解决该问题,但这不会导致问题 – Dooie 2010-01-19 13:24:06

+1

@ Dooie首先将其更改,然后确认这不是您的问题。 – 2010-01-19 13:42:56

+0

我改变了休息时间,这不是问题 – Dooie 2010-01-19 14:13:29

0

如果要在标题属性中换行,则需要使用CR/LF ASCII字符而不是<br />元素。

0

你可以模仿PHP的htmlentities()功能与一些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; 
} 

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