2014-05-14 48 views
0

我有這樣的腳本,附加一個列表項,如果它不是媒體鏈接存在。 我想要它做的也是,如果列表項不存在,它的字體顏色(CSS)設置爲另一種顏色。如果列表項存在不追加,但改變FONTCOLOR

var itemName = userName, 
    userFound = false; 

$('#msgUserlist li').each(function() { 
    if ($(this).text() === itemName) { 
     userFound = true; 
    } 
}); 

if (userFound === true) { 
    ////// at this point i want the fontcolor of the allready existing item be set./// 
    return; 
} else 
    var newNode = document.createElement('li'); 
    newNode.innerHTML = '<a id="switchtoUser" name="' + userName + '" ' + 'onclick="ajaxChat.getHistory' + '(\'' + userName + '\')"' + ' href="javascript:ajaxChat.sendPrivateMessageWrapper(\'/query ' + userName + '\');">' + userName + '</a>'; 
    document.getElementById('msgUserlist').appendChild(newNode); 
}, 

回答

1

你可以做到這一點,同時通過列表循環,當你搜索的用戶:

// ...snip 

$('#msgUserlist li').each(function() { 
    if ($(this).text() === itemName) { 
     userFound = true; 
     $(this).css({ 
      color: "blue" // or whatever 
     }); 
     return; 
    } 
}); 

// ...snip 
+0

好吧,我有困難的把它提供的代碼的情況下。它看起來像下面的追加代碼也以奇怪的方式執行,它會附加幾十次。另外提供的其他解決方案也是如此。 – ingridsede

0

你爲什麼不這樣做你會發現它的那一刻?

if ($(this).text() === itemName) { 
    userFound = true; 
    $(this).css('color', 'red'); // Example: change the color to red 
} 
0

我認爲這將通過jQuery函數的CSS()

HTML得到妥善解決

<ul id=msgUserlist> 
    <li>Foo</li> 
    <li>userName</li> 
    <li>tball rulez</li> 
</ul> 

的Javascript

var itemName = 'userName'; 

$(document).ready(function() { 
    $("#msgUserlist li").each(function() { 
     if($(this).text() == itemName) 
      $(this).css("color", "red"); 
    }) 
}) 

參見工作示例(簡單,b UT可以與你在你的問題中列出的邏輯擴展):http://jsfiddle.net/PGfgv/601/