2010-01-19 79 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