jquery改变一些具有特定css的孩子的css,当你只知道父母时

时间:2013-07-21 12:13:51

标签: jquery css

这是一个非常理论化的问题......

假设我有一个已知的“ul”,在这个“ul”中有一个“li”,其背景不是灰色而是白色,我想选择这个“li”并改变它的文本...会是什么是在jQuery中这样做的方法吗?

我可以用这个找出“li”:

$("ul#menu1").children().css("background-color", "white")

现在我如何编写命令以使其更改文本:

.html("new text")

但是如何将这些链接在一起呢?这是我的问题......谢谢!

1 个答案:

答案 0 :(得分:3)

您现有的代码行:

$("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",在这种情况下:< / p>

$("#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/