您现有的代码行:
$("ul#menu1").children().css("background-color", "white")
...没有找到已经具有白色背景的特定 li 元素,它选择了所有 li 元素并将它们的背景更改为白色。如果您只想选择背景已经是白色的项目,您可以执行以下操作:
$("#menu1 li").filter(function() {
return $(this).css("background-color") === "white";
}).html("new text");
尽管您可能会发现它.css("background-color")
返回一个类似的字符串"rgb(255, 255, 255)"
,即使您将颜色设置为字符串"white"
,在这种情况下:
$("#menu1 li").filter(function() {
var bc = $(this).css("background-color");
if (bc) bc = bc.replace(/\s/g,"").toLowerCase();
return bc === "white" || bc === "rgb(255,255,255)" || bc === "#fff" || bc === "#ffffff";
}).html("new text");
演示:http: //jsfiddle.net/XfDy3/